Komponentredigerare för: Product list card

Error executing template "Designs/Swift/Paragraph/CustomPublicationDownload.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_c33b998622204e37921644d5618592fe.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   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> @using Dynamicweb.Ecommerce.ProductCatalog @using Dynamicweb.Ecommerce.CustomerExperienceCenter.Favorites @{ ProductViewModel product = null; if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) { product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; } else if (Pageview.Page.Item["DummyProduct"] != null) { var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); if (productList?.Products is object) { product = productList.Products[0]; } } string uniqueId = $"{product?.Id}_{product?.VariantId.Replace(".", "_")}_{Pageview.CurrentParagraph.ID}"; string horizontalAlign = Model.Item.GetRawValueString("HorizontalAlignment", string.Empty); horizontalAlign = horizontalAlign == "center" ? "justify-content-center" : horizontalAlign; horizontalAlign = horizontalAlign == "end" ? "justify-content-end" : horizontalAlign; horizontalAlign = horizontalAlign == "full" ? string.Empty : horizontalAlign; string buttonSize = Model.Item.GetRawValueString("ButtonSize", "regular"); switch (buttonSize) { case "small": buttonSize = " btn-sm"; break; case "regular": buttonSize = string.Empty; break; case "large": buttonSize = " btn-lg"; break; } string iconPath = "/Files/Icons/"; string flexFill = Model.Item.GetRawValueString("HorizontalAlignment", "") == "full" ? "flex-fill" : string.Empty; string fullWidth = Model.Item.GetRawValueString("HorizontalAlignment", "") == "full" ? "w-100" : string.Empty; string icon = Model.Item.GetRawValueString("Icon", iconPath + "printer.svg"); string label = !icon.Contains("_none") ? $"<span class=\"icon-2\">{ReadFile(icon)}</span>" : string.Empty; label += !icon.Contains("_none") && !Model.Item.GetBoolean("HideButtonText") ? " " : string.Empty; label += !Model.Item.GetBoolean("HideButtonText") && !string.IsNullOrEmpty(Model.Item.GetString("Title")) ? Model.Item.GetString("Title") : string.Empty; } @if (product is object) { string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; var publication = Model.Item.GetRawValueString("Publication", ""); @if (!string.IsNullOrEmpty(publication)) { var pageObj = Dynamicweb.Content.Services.Pages.GetPage(Convert.ToInt32(publication)); if (pageObj is object) { <div class="d-flex @horizontalAlign @fullWidth item_@Model.Item.SystemName.ToLower()"> <form target="_blank" action="/Default.aspx?ID=@(pageObj.ID)" method="post" id="DownloadPublicationModalForm@(uniqueId)"> <input type="hidden" name="mainproductid" value="@product.Id"> <input type="hidden" name="print" value="true"> @if (!string.IsNullOrEmpty(product.VariantId)) { <input type="hidden" name="VariantId" value="@product.VariantId"> } <button type="button" onclick="GetPublication(event)" class="btn btn-primary @(buttonSize) @flexFill @theme" style="white-space: nowrap" title="@Model.Item.GetString("Title")" id="DownloadPublication@(uniqueId)"> @if (!Model.Item.GetBoolean("HideButtonText")) { <span class="text-nowrap d-flex align-items-center justify-content-center gap-2"> @label </span> } else { @label } </button> </form> </div> } } <script> const GetPublication = (e) => { const clickedButton = e.currentTarget; const form = clickedButton.closest('form'); form.closest('form').submit(); commentField = form.querySelector('textarea[name="DealerComment"]'); if (commentField) { commentField.value = ""; } }; </script> } else if (Pageview.IsVisualEditorMode) { <div class="d-flex @horizontalAlign @fullWidth item_@Model.Item.SystemName.ToLower()"> <button type="button" class="btn btn-primary @(buttonSize) @flexFill" data-bs-toggle="modal" data-bs-target="#DownloadPublicationModal@(uniqueId)" style="white-space: nowrap" title="@Model.Item.GetString("Title")" id="DownloadPublication@(uniqueId)"> @if (!Model.Item.GetBoolean("HideButtonText")) { <span class="text-nowrap d-flex align-items-center justify-content-center gap-2"> @label </span> } else { @label } </button> </div> }
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Statistics and Marketing