Open email in browser
Error executing template "Designs/Swift/Swift_Email/Paragraph/Swift_EmailMenu.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_18b5a282ff5f4a17a1fa9120b26b4d63.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) in /_/src/Application/Providers/Dynamicweb.Rendering.Providers.NetCore/Razor/RazorTemplateRenderingProvider.cs:line 99
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) in E:\A10\_w\2\s\src\Core\Dynamicweb.Core\Rendering\TemplateRenderingService.cs:line 21
   at Dynamicweb.Rendering.Template.RenderRazorTemplate() in E:\A10\_w\2\s\src\Core\Dynamicweb.Core\Rendering\Template.cs:line 749

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 3 @functions { 4 private string GetFontStack() 5 { 6 return "font-family:initial,Arial,Helvetica Neue,Helvetica,sans-serif;"; 7 } 8 9 private string GetTableReset() 10 { 11 return "border:0;margin:0;outline:0;padding:0;"; 12 } 13 } 14 15 @{ 16 var blockType = "menu_block"; 17 18 var page = Dynamicweb.Content.Services.Pages.GetPage(Model.PageID); 19 var settings = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(page?.Parent).Item; 20 var blockId = Model.ID; 21 var block = Model.Item; 22 23 var emailContentThemeId = settings.GetRawValueString("EmailContentTheme"); 24 var emailContentThemeParagraph = emailContentThemeId != null && emailContentThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(emailContentThemeId)) : null; 25 var emailContentTheme = emailContentThemeParagraph != null && Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(emailContentThemeParagraph).Item.GetString("CssClassName") != string.Empty ? Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(emailContentThemeParagraph)?.Item : null; 26 27 var rowId = Dynamicweb.Content.Services.Paragraphs.GetParagraph(blockId).GridRowId; 28 var row = Dynamicweb.Content.Services.Grids.GetGridRowById(rowId); 29 var rowItem = Dynamicweb.Content.Services.Items.GetItem(row.ItemType, row.ItemId); 30 var rowThemeId = Dynamicweb.Core.Converter.ToString(rowItem["ColumnBackground"]); 31 var rowThemeParagraph = rowThemeId != null && rowThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(rowThemeId)) : null; 32 var rowTheme = rowThemeParagraph != null && Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(rowThemeParagraph).Item.GetString("CssClassName") != string.Empty ? Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(rowThemeParagraph)?.Item : null; 33 34 var blockThemeId = block.GetRawValueString("Theme"); 35 var blockThemeParagraph = blockThemeId != null && blockThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(blockThemeId)) : null; 36 var blockTheme = blockThemeParagraph != null && Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(blockThemeParagraph).Item.GetString("CssClassName") != string.Empty ? Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(blockThemeParagraph)?.Item : rowTheme is object ? rowTheme : emailContentTheme; 37 38 string backgroundColor = blockTheme != null ? "background-color: " + blockTheme.GetString("BackgroundColor") + ";" : string.Empty; 39 string foregroundColor = blockTheme != null ? "color:" + blockTheme.GetString("ForegroundColor", "inherit") + ";" : string.Empty; 40 string borderColor = blockTheme != null ? blockTheme.GetString("BorderColor", "transparent") : string.Empty; 41 string borders = block.GetRawValueString("Borders", "none"); 42 string borderThicknes = block.GetRawValueString("BorderThicknes", "0") + "px"; 43 string borderClass = string.Empty; 44 45 switch (borders) 46 { 47 case "top": 48 borderClass = $"border-top:{borderThicknes} solid {borderColor};"; 49 break; 50 case "bottom": 51 borderClass = $"border-bottom:{borderThicknes} solid {borderColor};"; 52 break; 53 case "top-bottom": 54 borderClass = $"border-top:{borderThicknes} solid {borderColor}; border-bottom:{borderThicknes} solid {borderColor}; border-left:0;border-right:0;"; 55 break; 56 case "all": 57 borderClass = $"border:{borderThicknes} solid {borderColor};"; 58 break; 59 } 60 61 string padding = block.GetRawValueString("Padding", "0"); 62 var menuItems = block.GetItems("MenuItems"); 63 var align = block.GetRawValueString("Align", "center"); 64 var layout = block.GetRawValueString("Layout", "horizontal"); 65 var fontSize = block.GetRawValueString("FontSize", "16"); 66 } 67 68 <table id="@blockId" class="@blockType" align="@align" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0pt;mso-table-rspace:0pt;mso-line-height-rule:exactly;@GetTableReset()color:inherit;width:100%;@(backgroundColor)"> 69 <tbody> 70 <tr style="@GetTableReset()"> 71 <td style="mso-table-lspace:0pt;mso-table-rspace:0pt;font-weight:400;text-align:@align;vertical-align:top;@(backgroundColor)@(foregroundColor)@GetTableReset()padding:@(padding)px;@(borderClass)font-size:@(fontSize)px;" width="100%"> 72 @if (menuItems != null) 73 { 74 var last = menuItems.Last(); 75 foreach (var item in menuItems) 76 { 77 var link = item.GetLink("Link")?.Url ?? null; 78 var itemSpacing = block.GetRawValueString("ItemSpacing", "16"); 79 var spacing = !item.Equals(last) ? itemSpacing : "0"; 80 81 if (link != null) 82 { 83 var linkId = item.GetLink("Link").PageId; 84 var menuItem = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Dynamicweb.Content.Services.Pages.GetPage(linkId)); 85 86 link = Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host + "/Default.aspx?id=" + linkId; 87 88 <a href="@link" style="text-align:@align;@(layout == "vertical" ? $"display:block !important;width:100%;padding-bottom:{spacing}px;" : $"display:inline-block !important;margin-right:{spacing}px;")@(foregroundColor)text-decoration:none;@GetFontStack()" target="_blank"> 89 <strong style="@(foregroundColor)text-decoration:underline;font-weight:normal;@GetFontStack()"> 90 @menuItem.Name 91 </strong> 92 </a> 93 } 94 } 95 } 96 <!--[if mso]><br/><![endif]--> 97 </td> 98 </tr> 99 </tbody> 100 </table> 101
Du bestemmer over dine data

Vi og vores partnere bruger teknologier, inklusiv cookies, til at indsamle information om dig til forskellige formål, inkluderet:

  1. Funktionalitet
  2. Statistik
  3. Marketing

Ved at klikke 'Acceptér Alle' giver du samtykke til disse formål. Du kan også vælge at bestemme, hvilke formål du vil give samtykke til med valgmulighederne herunder, og klikke 'Acceptér valgte'.