Skip to main content
Error executing template "Designs/novi/Paragraph/accordions.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_7f22b24c44be4dae95740a37f1181e9c.Execute() in D:\dynamicweb.net\Solutions\Gotcha\novi2023.dw9.dynamicweb-cms.com\Files\Templates\Designs\novi\Paragraph\Accordions.cshtml:line 9
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Frontend 3 @using Novi.Website.Helpers; 4 @using System.Web 5 6 @{ 7 string moduleId = "module" + Model.ID; 8 var color = (ItemViewModel)Model.Item.GetValue("Color"); 9 string colorValue = color.GetString("Color"); 10 bool colorToned = color.GetBoolean("UseTonedVersion"); 11 12 string headline = Model.Item.GetString("Headline"); 13 string subheadline = Model.Item.GetString("Subheadline"); 14 var accordions = (List<ItemViewModel>)Model.Item.GetValue("Accordions"); 15 16 string cssClass = "accordions module theme" + colorValue; 17 cssClass += colorToned ? "-toned" : ""; 18 19 string itemHeadlineCssClass = "accordion__headline"; 20 string itemContentCssClass = "accordion__content"; 21 } 22 23 <article id="@moduleId" class="@cssClass"> 24 <div class="accordions__header"> 25 @if (!string.IsNullOrWhiteSpace(headline)) { 26 <h2 class="accordions__headline">@headline</h2> 27 } 28 @if (!string.IsNullOrWhiteSpace(subheadline)) { 29 <span class="accordions__subheadline">@subheadline</span> 30 } 31 </div> 32 <div class="accordions__content accordion__list"> 33 @{ 34 foreach (var accordion in accordions) { 35 string accordionHeadline = accordion.GetString("Headline"); 36 string accordionRichText = accordion.GetString("RichText"); 37 var accordionLink = (ItemViewModel)accordion.GetValue("Link"); 38 string accordionLinkUrl = accordionLink.GetString("Link"); 39 40 if (accordionLinkUrl.IndexOf("#accordion") == -1) { 41 accordionLinkUrl = accordionLinkUrl.IndexOf("#") != -1 && accordionLinkUrl.IndexOf("#module") == -1 ? accordionLinkUrl.Replace("#", "#module") : accordionLinkUrl; 42 } 43 44 var accordionImage = (ItemViewModel)accordion.GetValue("Image"); 45 string accordionImageUrl = UrlHelper.GetEncodedFilePath(accordionImage.GetString("Image")); 46 string accordionHeadlineId = "accordion-" + accordion.Id + "-headline"; 47 string accordionContentId = "accordion-" + accordion.Id + "-content"; 48 49 <div class="accordion__item" data-action="accordion"> 50 <h3 class="@itemHeadlineCssClass" id="@accordionHeadlineId" role="button" aria-expanded="false" aria-controls="#@accordionContentId"> 51 <span class="accordion__headline-inner">@accordionHeadline</span> 52 <span class="accordion__icon"></span> 53 </h3> 54 <div class="accordion__content-wrap" id="@accordionContentId" aria-hidden="true" aria-labelledby="@accordionHeadlineId"> 55 <div class="@itemContentCssClass"> 56 <div class="rich-text accordion__rich-text"> 57 @accordionRichText 58 @if (!string.IsNullOrWhiteSpace(accordionLinkUrl)) { 59 string accordionLinkTitle = accordionLink.GetString("Title"); 60 string accordionLinkText = accordionLink.GetString("Text"); 61 string iconCssClass = accordionLinkUrl.IndexOf("#") == -1 ? "btn__icon" : "btn__icon btn__icon--down"; 62 63 <a href="@accordionLinkUrl" class="btn" title="@accordionLinkTitle"> 64 <span class="btn__text">@accordionLinkText</span> 65 <span class="@iconCssClass"> 66 <svg width="13" height="11" viewBox="0 0 13 11" fill="none" xmlns="http://www.w3.org/2000/svg"> 67 <path d="M7.34014 11L6.36735 10.067L10.3722 6.17522H0V4.82478H10.3722L6.36735 0.945312L7.34014 0L13 5.5L7.34014 11Z" fill="black"/> 68 </svg> 69 <svg width="13" height="11" viewBox="0 0 13 11" fill="none" xmlns="http://www.w3.org/2000/svg"> 70 <path d="M7.34014 11L6.36735 10.067L10.3722 6.17522H0V4.82478H10.3722L6.36735 0.945312L7.34014 0L13 5.5L7.34014 11Z" fill="black"/> 71 </svg> 72 </span> 73 </a> 74 } 75 </div> 76 @if (!string.IsNullOrWhiteSpace(accordionImageUrl)) { 77 string accordionImageAltText = accordionImage.GetString("AlternateText"); 78 string imageLarge = "/admin/public/getimage.ashx?Image=" + accordionImageUrl + "&width=1051&Compression=100"; 79 string imageSmall = "/admin/public/getimage.ashx?Image=" + accordionImageUrl + "&width=788&Compression=100"; 80 string imageDefault = "/admin/public/getimage.ashx?Image=" + accordionImageUrl + "&width=674&Compression=100"; 81 82 imageLarge += accordionImageUrl.IndexOf("x=") != -1 ? "&crop=7" : "&crop=0"; 83 imageSmall += accordionImageUrl.IndexOf("x=") != -1 ? "&crop=7" : "&crop=0"; 84 imageDefault += accordionImageUrl.IndexOf("x=") != -1 ? "&crop=7" : "&crop=0"; 85 86 <picture class="accordion__image-wrap"> 87 <source srcset="@imageLarge" media="(min-width: 1920px)"> 88 <source srcset="@imageSmall" media="(min-width: 768px)"> 89 <img class="accordion__image" width="696" src="@imageDefault" alt="@accordionImageAltText." loading="lazy" /> 90 </picture> 91 } 92 </div> 93 </div> 94 </div> 95 } 96 } 97 </div> 98 </article>
Error executing template "Designs/novi/Paragraph/accordions.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_7f22b24c44be4dae95740a37f1181e9c.Execute() in D:\dynamicweb.net\Solutions\Gotcha\novi2023.dw9.dynamicweb-cms.com\Files\Templates\Designs\novi\Paragraph\Accordions.cshtml:line 9
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Frontend 3 @using Novi.Website.Helpers; 4 @using System.Web 5 6 @{ 7 string moduleId = "module" + Model.ID; 8 var color = (ItemViewModel)Model.Item.GetValue("Color"); 9 string colorValue = color.GetString("Color"); 10 bool colorToned = color.GetBoolean("UseTonedVersion"); 11 12 string headline = Model.Item.GetString("Headline"); 13 string subheadline = Model.Item.GetString("Subheadline"); 14 var accordions = (List<ItemViewModel>)Model.Item.GetValue("Accordions"); 15 16 string cssClass = "accordions module theme" + colorValue; 17 cssClass += colorToned ? "-toned" : ""; 18 19 string itemHeadlineCssClass = "accordion__headline"; 20 string itemContentCssClass = "accordion__content"; 21 } 22 23 <article id="@moduleId" class="@cssClass"> 24 <div class="accordions__header"> 25 @if (!string.IsNullOrWhiteSpace(headline)) { 26 <h2 class="accordions__headline">@headline</h2> 27 } 28 @if (!string.IsNullOrWhiteSpace(subheadline)) { 29 <span class="accordions__subheadline">@subheadline</span> 30 } 31 </div> 32 <div class="accordions__content accordion__list"> 33 @{ 34 foreach (var accordion in accordions) { 35 string accordionHeadline = accordion.GetString("Headline"); 36 string accordionRichText = accordion.GetString("RichText"); 37 var accordionLink = (ItemViewModel)accordion.GetValue("Link"); 38 string accordionLinkUrl = accordionLink.GetString("Link"); 39 40 if (accordionLinkUrl.IndexOf("#accordion") == -1) { 41 accordionLinkUrl = accordionLinkUrl.IndexOf("#") != -1 && accordionLinkUrl.IndexOf("#module") == -1 ? accordionLinkUrl.Replace("#", "#module") : accordionLinkUrl; 42 } 43 44 var accordionImage = (ItemViewModel)accordion.GetValue("Image"); 45 string accordionImageUrl = UrlHelper.GetEncodedFilePath(accordionImage.GetString("Image")); 46 string accordionHeadlineId = "accordion-" + accordion.Id + "-headline"; 47 string accordionContentId = "accordion-" + accordion.Id + "-content"; 48 49 <div class="accordion__item" data-action="accordion"> 50 <h3 class="@itemHeadlineCssClass" id="@accordionHeadlineId" role="button" aria-expanded="false" aria-controls="#@accordionContentId"> 51 <span class="accordion__headline-inner">@accordionHeadline</span> 52 <span class="accordion__icon"></span> 53 </h3> 54 <div class="accordion__content-wrap" id="@accordionContentId" aria-hidden="true" aria-labelledby="@accordionHeadlineId"> 55 <div class="@itemContentCssClass"> 56 <div class="rich-text accordion__rich-text"> 57 @accordionRichText 58 @if (!string.IsNullOrWhiteSpace(accordionLinkUrl)) { 59 string accordionLinkTitle = accordionLink.GetString("Title"); 60 string accordionLinkText = accordionLink.GetString("Text"); 61 string iconCssClass = accordionLinkUrl.IndexOf("#") == -1 ? "btn__icon" : "btn__icon btn__icon--down"; 62 63 <a href="@accordionLinkUrl" class="btn" title="@accordionLinkTitle"> 64 <span class="btn__text">@accordionLinkText</span> 65 <span class="@iconCssClass"> 66 <svg width="13" height="11" viewBox="0 0 13 11" fill="none" xmlns="http://www.w3.org/2000/svg"> 67 <path d="M7.34014 11L6.36735 10.067L10.3722 6.17522H0V4.82478H10.3722L6.36735 0.945312L7.34014 0L13 5.5L7.34014 11Z" fill="black"/> 68 </svg> 69 <svg width="13" height="11" viewBox="0 0 13 11" fill="none" xmlns="http://www.w3.org/2000/svg"> 70 <path d="M7.34014 11L6.36735 10.067L10.3722 6.17522H0V4.82478H10.3722L6.36735 0.945312L7.34014 0L13 5.5L7.34014 11Z" fill="black"/> 71 </svg> 72 </span> 73 </a> 74 } 75 </div> 76 @if (!string.IsNullOrWhiteSpace(accordionImageUrl)) { 77 string accordionImageAltText = accordionImage.GetString("AlternateText"); 78 string imageLarge = "/admin/public/getimage.ashx?Image=" + accordionImageUrl + "&width=1051&Compression=100"; 79 string imageSmall = "/admin/public/getimage.ashx?Image=" + accordionImageUrl + "&width=788&Compression=100"; 80 string imageDefault = "/admin/public/getimage.ashx?Image=" + accordionImageUrl + "&width=674&Compression=100"; 81 82 imageLarge += accordionImageUrl.IndexOf("x=") != -1 ? "&crop=7" : "&crop=0"; 83 imageSmall += accordionImageUrl.IndexOf("x=") != -1 ? "&crop=7" : "&crop=0"; 84 imageDefault += accordionImageUrl.IndexOf("x=") != -1 ? "&crop=7" : "&crop=0"; 85 86 <picture class="accordion__image-wrap"> 87 <source srcset="@imageLarge" media="(min-width: 1920px)"> 88 <source srcset="@imageSmall" media="(min-width: 768px)"> 89 <img class="accordion__image" width="696" src="@imageDefault" alt="@accordionImageAltText." loading="lazy" /> 90 </picture> 91 } 92 </div> 93 </div> 94 </div> 95 } 96 } 97 </div> 98 </article>