Komponent editor til: Product list card

Error executing template "Designs/Swift/Paragraph/Swift_Accordion.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_9ae30e8913134587b0b0436ea87b3f1c.Execute() in D:\dynamicweb.net\Solutions\twodayco3\twodayco3.swift.dwdemo.dynamicweb-cms.com\files\Templates\Designs\Swift\Paragraph\Swift_Accordion.cshtml:line 37
   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 3 @functions 4 { 5 private string RenderCustomCSS(IEnumerable<string> decorations) 6 { 7 var cssClasses = new List<string>(); 8 9 foreach (var itemId in decorations) 10 { 11 var item = Dynamicweb.Content.Services.Items.GetItem("Swift_Css", itemId); 12 item.TryGetValue("Class", out object classes); 13 14 if (classes is null) 15 { 16 continue; 17 } 18 19 var cssString = (string)classes; 20 21 if (cssString.StartsWith("[")) 22 { 23 var cssArray = Dynamicweb.Core.Converter.Deserialize<string[]>(cssString); 24 cssClasses.AddRange(cssArray); 25 } 26 else 27 { 28 cssClasses.Add(cssString.Replace(",", " ")); 29 } 30 } 31 32 return string.Join(" ", cssClasses).Trim(); 33 } 34 } 35 36 @{ 37 string title = Model.Item.GetString("Title"); 38 var accordionItems = Model.Item?.GetItems("Accordion_Items") ?? Enumerable.Empty<Dynamicweb.Frontend.ItemViewModel>().ToList(); 39 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 40 var decorations = Model.Item?.GetList("CssDecorations")?.GetRawValue().OfType<string>() ?? Enumerable.Empty<string>(); 41 string css = RenderCustomCSS(decorations); 42 string contentPadding = Model.Item.GetRawValueString("ContentPadding", "none"); 43 contentPadding = contentPadding == "none" ? "p-0" : contentPadding; 44 contentPadding = contentPadding == "small" ? "p-3 p-md-3" : contentPadding; 45 contentPadding = contentPadding == "large" ? "p-5 p-md-5" : contentPadding; 46 } 47 48 <div class="accordion @(theme) @(css) @(contentPadding) h-100 position-relative item_@Model.Item.SystemName.ToLower()" id="accordion-@Pageview.CurrentParagraph.ID"> 49 @if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 50 { 51 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h2"); 52 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 53 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} mb-4\">"; 54 string headingLevelStop = $"</{headingLevel}>"; 55 56 @headingLevelStart 57 @Model.Item.GetString("Title") 58 @headingLevelStop 59 } 60 @foreach (var item in accordionItems) 61 { 62 <div class="accordion-item"> 63 <h2 class="accordion-header" id="heading-@Pageview.CurrentParagraph.ID-@item.Id"> 64 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-@Pageview.CurrentParagraph.ID-@item.Id" aria-expanded="false" aria-controls="collapse-@Pageview.CurrentParagraph.ID-@item.Id"> 65 @item.GetString("Title") 66 </button> 67 </h2> 68 <div id="collapse-@Pageview.CurrentParagraph.ID-@item.Id" class="accordion-collapse collapse" aria-labelledby="heading-@Pageview.CurrentParagraph.ID-@item.Id" data-bs-parent="#accordion-@Pageview.CurrentParagraph.ID"> 69 <div class="accordion-body mb-0-last-child opacity-75"> 70 @item.GetRawValueString("Content") 71 </div> 72 </div> 73 </div> 74 } 75 <div id="@Model.ID" class="user-select-none position-absolute top-0" style="scroll-margin-top:var(--header-height,150px)"></div> 76 </div> 77
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Statistics and Marketing