Error executing template "Designs/Jks2022/_parsed/NewsPage.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_086bccd987ca4fd78e19e8d7609b8023.Execute() in D:\Web\jks.dk\Files\Templates\Designs\Jks2022\_parsed\NewsPage.parsed.cshtml:line 271
   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.PageViewModel> 2 3 @{ 4 //for cookieinformation and flags 5 string languageCode = Pageview.Area.Culture.Substring(0, 2).ToUpper(); 6 int modelId = Model.Area.ID; 7 string googleTagManagerId = Model.Area.Item.GetString("GoogleTagManager"); 8 } 9 10 <!DOCTYPE html> 11 <html> 12 <head> 13 14 <!-- Google tag (gtag.js) --> 15 @if (modelId == 18) 16 { 17 <script async src="https://www.googletagmanager.com/gtag/js?id=G-ELDPWGB1ZZ"></script> 18 <script> 19 window.dataLayer = window.dataLayer || []; 20 function gtag() { dataLayer.push(arguments); } 21 gtag('js', new Date()); 22 gtag('config', 'G-ELDPWGB1ZZ'); 23 </script> 24 } 25 else if (modelId == 10) 26 { 27 <script async src="https://www.googletagmanager.com/gtag/js?id=G-D299QWVPJP"></script> 28 <script> 29 window.dataLayer = window.dataLayer || []; 30 function gtag() { dataLayer.push(arguments); } 31 gtag('js', new Date()); 32 gtag('config', 'G-D299QWVPJP'); 33 </script> 34 } 35 else if (modelId == 12) 36 { 37 <script async src="https://www.googletagmanager.com/gtag/js?id=G-PHS2ZDS6BW"></script> 38 <script> 39 window.dataLayer = window.dataLayer || []; 40 function gtag() { dataLayer.push(arguments); } 41 gtag('js', new Date()); 42 gtag('config', 'G-PHS2ZDS6BW'); 43 </script> 44 } 45 <!-- End Google tag (gtag.js) --> 46 47 <meta charset="utf-8" /> 48 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 49 <title>@Model.Title</title> 50 <meta name="description" content="@Model.Description" /> 51 52 <link href="@Model.Area.Item.GetFile("FavIcon")" type="image/x-icon" rel="icon" /> 53 <link href="@Model.Area.Item.GetFile("FavIcon")" type="image/x-icon" rel="shortcut icon" /> 54 55 @if (System.Web.HttpContext.Current.Request.Url.Host.Contains("staging") || System.Web.HttpContext.Current.Request.Url.Host.Contains("vestjyskmarketing") || Pageview.Area.Noindex) 56 { 57 <meta name="robots" content="noindex,nofollow" /> 58 } 59 60 <script id="CookieConsent" src="https://policy.app.cookieinformation.com/uc.js" data-culture="@languageCode" type="text/javascript"></script> 61 62 @if (!String.IsNullOrEmpty(googleTagManagerId)) 63 { 64 <!-- Google Tag Manager --> 65 <script> 66 67 window.addEventListener('CookieInformationConsentGiven', function (event) { 68 if (CookieInformation.getConsentGivenFor('cookie_cat_marketing')) { 69 70 (function (w, d, s, l, i) { 71 w[l] = w[l] || []; w[l].push({ 72 'gtm.start': 73 new Date().getTime(), event: 'gtm.js' 74 }); var f = d.getElementsByTagName(s)[0], 75 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 76 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 77 })(window, document, 'script', 'dataLayer', '@googleTagManagerId'); 78 79 } 80 }, false); 81 82 </script> 83 <!-- End Google Tag Manager --> 84 } 85 86 87 @RenderSnippet("Metas") 88 89 @if (modelId == 17) 90 { 91 <link rel="stylesheet" href="/Files/Templates/Designs/dist/CareerJks2022.css?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/CareerJks2022.css").Ticks" /> 92 } 93 else if (modelId == 16) 94 { 95 <link rel="stylesheet" href="/Files/Templates/Designs/dist/ProfJks2022.css?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/ProfJks2022.css").Ticks" /> 96 } 97 else 98 { 99 <link rel="stylesheet" href="/Files/Templates/Designs/dist/Jks2022.css?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/Jks2022.css").Ticks" /> 100 } 101 102 @RenderSnippet("Styles") 103 @RenderSnippet("Scripts") 104 </head> 105 106 107 <body> 108 109 @if (!String.IsNullOrEmpty(googleTagManagerId)) 110 { 111 <!-- Google Tag Manager (noscript) --> 112 <noscript> 113 <iframe src="" data-consent-src="https://www.googletagmanager.com/ns.html?id=@googleTagManagerId" data-category-consent="cookie_cat_marketing" height="0" width="0" style="display:none;visibility:hidden"></iframe> 114 </noscript> 115 <!-- End Google Tag Manager (noscript) --> 116 } 117 118 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 119 120 @using Dynamicweb.Content 121 @using Dynamicweb.Content.Files.Metadata 122 @using Dynamicweb.Extensibility; 123 124 @{ 125 var areaID = Dynamicweb.Frontend.PageView.Current().Area.ID; 126 var pageID = Dynamicweb.Frontend.PageView.Current().Page.ID; 127 var pageType = Dynamicweb.Frontend.PageView.Current().Page.ItemType; 128 var pageService = ServiceLocator.Current.GetPageService(); 129 var rootPages = pageService.GetRootPagesForArea(areaID).Where(p => p.Active && p.Item != null).ToArray(); 130 int searchpageIdGlobal = GetPageIdByNavigationTag("SearchPageGlobal"); 131 } 132 @{ 133 var navigationSettingsDesktop = new Dynamicweb.Frontend.Navigation.NavigationSettings() 134 { 135 StartLevel = 1, 136 StopLevel = 2, 137 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.All 138 }; 139 var navigationTemplateDesktop = "Navigation/NavigationDesktop.cshtml"; 140 141 var navigationSettingsMobile = new Dynamicweb.Frontend.Navigation.NavigationSettings() 142 { 143 StartLevel = 1, 144 StopLevel = 999, 145 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.All 146 }; 147 148 var navigationTemplateMobile = "Navigation/NavigationMobile.cshtml"; 149 string classHeader = Dynamicweb.Core.Converter.ToString(Dynamicweb.Context.Current.Items["headerCLass"]); 150 //hack because the special page does not understand the context properly? 151 if (Model.ItemType == "JksDividerPage") 152 { 153 classHeader += "bg-primary nav-light"; 154 } 155 else if(Model.ItemType == "DepartmentPage") 156 { 157 classHeader += "bg-eggwhite"; 158 } 159 160 161 string logoDesktop = Model.Area.Item.GetString("LogoWide"); 162 string logoMobile = Model.Area.Item.GetString("LogoTall"); 163 164 if (pageType == "Job" && !classHeader.Contains("nav-light")) 165 { 166 classHeader = classHeader + " nav-light "; 167 } 168 169 if (!classHeader.Contains("nav-light")) 170 { 171 logoDesktop = logoDesktop.Replace("white", "rgb"); 172 logoMobile = logoMobile.Replace("white", "rgb"); 173 } 174 } 175 <div class="header-wrapper"> 176 <header class="container-fluid header @classHeader"> 177 <a href="/" id="js-header-logo" class="header__logo-wrapper" title="@Translate("Go to frontpage")"> 178 <picture> 179 <source media="(min-width:1200px)" srcset="@logoDesktop"> 180 <img class="header__logo-wrapper__logo" src="@logoMobile" alt="@Translate("Logo") @Model.Area.Name"> 181 </picture> 182 </a> 183 184 <div class="d-flex justify-content-around align-items-center"> 185 <div class="header__desktop__menu__item--search d-lg-none me-4"> 186 <a href="/Default.aspx?ID=@searchpageIdGlobal&Search=" class="header__burger__menu__title--search--wrapper "> 187 <div class="header__burger__menu__title--searchicon"> 188 </div> 189 </a> 190 191 </div> 192 <div class="header__burger header__burger--active d-lg-none"> 193 <input class="header__burger__checkbox" type="checkbox" id="js-burger-checkbox" /> 194 <span class="header__burger__line"></span> 195 <span class="header__burger__line"></span> 196 <span class="header__burger__line"></span> 197 198 @Navigation.RenderNavigation(navigationTemplateMobile, navigationSettingsMobile) 199 </div> 200 201 </div> 202 203 204 <div class="flex-column header__desktop__menu-wrapper"> 205 @if (Model.Area.Item.GetItems("Shortcuts").Count > 0) 206 { 207 <ul class="header__desktop__shortcuts justify-content-end" id="js-menu-shortcuts"> 208 @foreach (var list in Model.Area.Item.GetItems("Shortcuts")) 209 { 210 <li> 211 <a href="@list.GetLink("Link")">@list.GetString("Tekst")</a> 212 </li> 213 } 214 </ul> 215 } 216 217 @Navigation.RenderNavigation(navigationTemplateDesktop, navigationSettingsDesktop) 218 </div> 219 220 221 </header> 222 223 @if (true) 224 { 225 <div class="d-none d-md-block header-mega-menu container-fluid"> 226 227 @foreach (var rootPage in rootPages) 228 { 229 230 if (rootPage.Item.ContainsKey("ShowExtendedMenu") && rootPage.Item["ShowExtendedMenu"] != null && bool.Parse(rootPage.Item["ShowExtendedMenu"].ToString())) 231 { 232 var details = rootPage.Item["ExtendedMenuDetails"]; 233 var title = rootPage.MenuText; 234 var subPages = pageService.GetPagesByParentID(rootPage.ID).Where(p => p.Active); 235 236 <div class="mega-menu row" role="menu" menuId="@rootPage.ID"> 237 <div class="col-7"> 238 <div class="col-10 col-lg-8 col-xl-6"> 239 <a href="@rootPage.GetPageHrefValue()" class="section-title"><h3 class="title">@title<span class="arrow"></span></h3></a> 240 <p class="details">@details</p> 241 </div> 242 </div> 243 <div class="col-5 sub-pages"> 244 <div class="row"> 245 @foreach (var subpage in subPages) 246 { 247 <div class="col-6 col-xl-6 link-item"><a href="@subpage.GetPageHrefValue()">@subpage.MenuText</a></div> 248 } 249 </div> 250 </div> 251 </div> 252 } 253 } 254 </div> 255 } 256 257 </div> 258 259 260 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 261 262 @Title("News page template") 263 264 265 266 @{ 267 string port = Dynamicweb.Context.Current.Request.Url.Port == 80 ? "http://" : "https://"; 268 269 var imageObj = Model.Item.GetFile("Image"); 270 string image = "/Admin/Public/GetImage.ashx?Image=" + Model.Item.GetFile("Image") + "&Crop=7&Format=webP&width=1000&Height=600&Quality=75"; 271 if (imageObj.HasFocalPoint()) 272 { 273 image += "&x=" + imageObj.FocalX + "&y=" + imageObj.FocalY; 274 } 275 276 string someImage = port + Dynamicweb.Context.Current.Request.Url.Host + "/Admin/Public/GetImage.ashx?Image=" + Model.Item.GetFile("Image") + "&Crop=0&width=480&Height=250"; 277 } 278 279 @SnippetStart("Metas") 280 <meta property="og:url" content='@Pageview.SearchFriendlyUrl' /> 281 <meta property="og:type" content="article" /> 282 <meta property="og:title" content="@Model.Item.GetString("Title")" /> 283 <meta property="og:description" content="@Model.Item.GetString("SubTitle")" /> 284 <meta property="og:image" content="@someImage" /> 285 <meta property="og:image:width" content="480" /> 286 <meta property="og:image:height" content="250" /> 287 @SnippetEnd("Metas") 288 289 290 @SnippetStart("JavaScriptBottom") 291 <script type="text/javascript"> 292 function linkedinShare() { 293 var MainUrl = 'https://www.linkedin.com/shareArticle?url=@(Pageview.SearchFriendlyUrl)&mini=true&title=@(Model.Item.GetString("Title"))&summary=@(Model.Item.GetString("SubTitle"))'; 294 295 popitup(MainUrl); 296 } 297 298 function facebookShare() { 299 var MainUrl = 'https://www.facebook.com/sharer/sharer.php?u=@(Pageview.SearchFriendlyUrl)'; 300 popitup(MainUrl); 301 } 302 303 function popitup(url) { 304 newwindow=window.open(url,'@(Model.Item.GetString("Title"))','height=460,width=670'); 305 if (window.focus) {newwindow.focus()} 306 return false; 307 } 308 309 </script> 310 @SnippetEnd("JavaScriptsBottom") 311 312 313 <div class="container-fluid"> 314 <div class="article-top article-top__center pb-rem-3 pt-rem-1 pb-rem-md-4 p-rem-lg-4"> 315 <div class="article-top__wrapper "> 316 @if (!String.IsNullOrEmpty(Model.Item.GetString("Date"))) 317 { 318 <div class="article-top__wrapper__subheader">@Model.Item.GetDateTime("Date").ToString("d-MM-yyyy")</div> 319 } 320 321 <h1 class="article-top__wrapper__header">@Model.Item.GetString("Title")</h1> 322 323 @if (!String.IsNullOrEmpty(Model.Item.GetString("SubTitle"))) 324 { 325 <p class="article-top__wrapper__text mx-auto"> 326 @Model.Item.GetString("SubTitle") 327 </p> 328 } 329 <div class="article-top__btn-wrapper"> 330 <a href="javascript:void(0)" class="m-auto js-smooth-scroll arrow-small arrow-down btn-hover-primary d-block "></a> 331 </div> 332 </div> 333 </div> 334 </div> 335 336 @if (!String.IsNullOrEmpty(Model.Item.GetString("ImageText")) && !String.IsNullOrEmpty(Model.Item.GetString("Image"))) 337 { 338 <div class="container-fluid"> 339 <section class="entry-picture entry-picture-large pb-rem-5 pb-rem-md-7"> 340 <div class="row"> 341 <div class="entry-picture__image-wrapper col-12 col-md-6 col-xl-7 d-flex flex-column justify-content-center"> 342 <div class="entry-picture__image" style="background-image: url('@image')"></div> 343 </div> 344 <div class="col-12 col-md-6 offset-xl-1 col-xl-4 d-flex flex-column justify-content-center entry-picture__text-wrapper entry-picture__text-wrapper-big"> 345 <p class="entry-picture__text article-page__imagetext"> 346 @Model.Item.GetString("ImageText") 347 </p> 348 </div> 349 </div> 350 </section> 351 </div> 352 } 353 354 <div class="container-fluid container-fluid-extra"> 355 <section class="article-page entry-picture-large pb-rem-5 pb-rem-md-7"> 356 <div class="article-page__text"> 357 @Model.Item.GetString("Text") 358 </div> 359 <div class="article-page__share"> 360 <span class="article-page__share__text">@Translate("Share this article")</span> 361 <a href="javascript:void(0)" onclick="linkedinShare();" class="article-page__share__linkedin"></a> 362 <a href="javascript:void(0)" onclick="facebookShare();" class="article-page__share__facebook"></a> 363 </div> 364 </section> 365 </div> 366 367 @Model.Placeholder("dwcontent", "Indhold", "default:true;sort:1") 368 369 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 370 371 @{ 372 int formIdParagraph = Dynamicweb.Core.Converter.ToInt32(Model.Area.Item.GetString("FooterForm")?.Substring(Model.Area.Item.GetString("FooterForm").LastIndexOf('#') + 1)); 373 } 374 375 <footer class="footer"> 376 <div class="container-fluid container-fluid-extra "> 377 <div class="row position-relative"> 378 <div class="col-12 col-md-7"> 379 <div class="footer__form-wrapper"> 380 <h3 class="footer__form-wrapper__header"> 381 <span class="footer__form-wrapper__header__text">@Model.Area.Item.GetString("FooterFormHeadline")</span> 382 383 <div class="footer__form-wrapper__header__svg-wrapper"> 384 <svg class="js-footer-form-btn footer__form-wrapper__header__svg-wrapper__svg arrow-small" version="1.1" id="Layer_1" 385 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 386 viewBox="0 0 71 71" style="enable-background:new 0 0 71 71;" xml:space="preserve"> 387 <g> 388 <path d="M37.4,26.7l8.8,8.8l-8.8,8.8l-1.9-2l3.3-3.3c0.7-0.7,1.6-1.2,2.9-1.9l-0.4-1c-1.1,0.4-2.1,0.8-3.7,0.8L24.8,37v-2.9 389 L37.6,34c1.6,0,2.8,0.5,3.7,0.8l0.4-1c-1.4-0.7-2.2-1.1-3-1.9l-3.3-3.2L37.4,26.7z" /> 390 </g> 391 </svg> 392 </div> 393 </h3> 394 395 <p class="footer__form-wrapper__text"> 396 @Model.Area.Item.GetString("FooterFormSubHeadline") 397 </p> 398 399 @if (formIdParagraph > 0 && String.IsNullOrEmpty(System.Web.HttpContext.Current.Request.QueryString["pid"])) 400 { 401 @RenderParagraphContent(formIdParagraph) 402 } 403 </div> 404 </div> 405 <div class="col-12"> 406 <div class="d-flex footer__bottom flex-wrap flex-xxl-nowrap"> 407 <div class="flex-fill d-none d-lg-block footer__bottom__logo-wrapper pe-lg-3"> 408 <img class="footer__bottom__logo-wrapper__logo" src="@Model.Area.Item.GetFile("LogoFooter")" alt="@Translate("Logo")" /> 409 </div> 410 411 <ul class="flex-fill footer__bottom__list pe-2 pe-sm-3"> 412 <li class="footer__bottom__list__header">@Model.Area.Item.GetString("FooterHeadlineLinkList1")</li> 413 @foreach (var list in Model.Area.Item.GetItems("FooterLinkList1")) 414 { 415 <li class="footer__bottom__list__item"> 416 <a class="footer__bottom__list__item__link" href="@list.GetLink("Link")" title="@Translate("Go to") @list.GetString("Tekst")">@list.GetString("Tekst")</a> 417 </li> 418 } 419 </ul> 420 <ul class="flex-fill footer__bottom__list px-2 px-sm-3"> 421 <li class="footer__bottom__list__header">@Model.Area.Item.GetString("FooterHeadlineLinkList2")</li> 422 @foreach (var list in Model.Area.Item.GetItems("FooterLinkList2")) 423 { 424 <li class="footer__bottom__list__item"> 425 <a class="footer__bottom__list__item__link" href="@list.GetLink("Link")" title="@Translate("Go to") @list.GetString("Tekst")">@list.GetString("Tekst")</a> 426 </li> 427 } 428 </ul> 429 430 @if (Model.Area.Item.GetItems("FooterLinkList3").Count() > 0) 431 { 432 <ul class="flex-fill footer__bottom__list pe-2 pe-sm-3"> 433 <li class="footer__bottom__list__header mt-3 mt-sm-0">@Model.Area.Item.GetString("FooterHeadlineLinkList3")</li> 434 @foreach (var list in Model.Area.Item.GetItems("FooterLinkList3")) 435 { 436 <li class="footer__bottom__list__item"> 437 <a class="footer__bottom__list__item__link" href="@list.GetLink("Link")" title="@Translate("Go to") @list.GetString("Tekst")">@list.GetString("Tekst")</a> 438 </li> 439 } 440 </ul> 441 } 442 443 <div class="flex-fill footer__bottom__follow d-flex flex-column"> 444 <span class="footer__bottom__follow__header d-none d-lg-block">@Translate("Follow us")</span> 445 <div> 446 @foreach (var icon in Model.Area.Item.GetItems("SocialIcons")) 447 { 448 <a href="@icon.GetLink("Link")" title="@Translate("Go to") @icon.GetString("LinkAltText")" class="d-inline-block"> 449 <img class="footer__bottom__follow__linkedin img-fluid" src="@icon.GetFile("Icon")" alt="@icon.GetString("LinkAltText")" /> 450 </a> 451 452 } 453 </div> 454 @if (!Model.Area.Item.GetBoolean("Hide_Branding_Logo")) 455 { 456 <a href="#"> 457 <img class="footer__bottom__follow__jks img-fluid" src="@Model.Area.Item.GetFile("LogoBranding")" alt="@Translate("Logo branding")" /> 458 </a> 459 } 460 </div> 461 </div> 462 </div> 463 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("AAA_Logo"))) 464 { 465 <div id="aaa_rating" class="aaa_rating"> 466 @Model.Area.Item.GetString("AAA_Logo") 467 </div> 468 } 469 </div> 470 </div> 471 472 </footer> 473 474 @if (modelId == 17) 475 { 476 <script src="/Files/Templates/Designs/dist/CareerJks2022.js?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/CareerJks2022.css").Ticks"></script> 477 } 478 else if (modelId == 16) 479 { 480 <script src="/Files/Templates/Designs/dist/ProfJks2022.js?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/ProfJks2022.css").Ticks"></script> 481 } 482 else 483 { 484 <script src="/Files/Templates/Designs/dist/Jks2022.js?v=@System.IO.File.GetLastWriteTime(AppDomain.CurrentDomain.BaseDirectory + "/Files/Templates/Designs/dist/Jks2022.css").Ticks"></script> 485 } 486 487 <!--Used for youtube video on site--> 488 <div class="modal fade" id="youtubeModal" aria-hidden="true" tabindex="-1"> 489 <div class="modal-dialog modal-xl modal-dialog-centered justify-content-center"> 490 <div class="modal-content"> 491 <div id="js-ytplayer"></div> 492 </div> 493 </div> 494 </div> 495 496 @RenderSnippet("JavaScriptBottom") 497 </body> 498 499 </html>