Try our conversational search powered by Generative AI!

Pages in Content Area, only showing when editing. Disappears when refreshing/publishing.


Hello Comrades,

My issue is that I am able to see the content when I am modifying the content area, but after I publish or refresh the page, it does not go through the template controller that I have defined.

It does however, go through my controller when I am modifying or adding `Blog Pages` to the content area.

When I add a breakpoint, it only hits the breakpoint when I hit edit and modify the content area (selecting new blog post pages to add)  When refreshing, the breakpoint does not get hit. (And therefore my content is not rendering)

I am using Optimizely 12.27

I have a simple blog site with that has a main page.  Under the main page, there are blog pages.  To do this, I have created a content area in he `Main Page` class, that can accept `Blog Pages` 

in BlogMainPage.cs...

	DisplayName = "Blog Main Page",
	Description = "Use this to create blog post pages with blocks",
	GUID = "d82826a4-3c13-4201-99f0-d1454e549f22",
	GroupName = "Blog"
public class BlogMainPage : AbstractContentPage

		Name = "BlogCards",
		Description = "The area will show cards of blog pages.",

		GroupName = SystemTabNames.Content,
		Order = 500)]
		AllowedTypes = new[] { typeof(BlogPostPage) }
	public virtual ContentArea? BlogCards { get; set; }

In my view `BlogMainPage/Index.cshtml`

@model BlogMainPageViewModel
	@Html.PropertyFor(x => x.BlogCards
			, new
				Tag = "blogpost",

In my `TemplateCoordinator.cs`

public class TemplateCoordinator : IViewTemplateModelRegistrator
	public void Register(TemplateModelCollection viewTemplateModelRegistrator)
        viewTemplateModelRegistrator.Add(typeof(BlogPostPage), new TemplateModel
            Name = "Blog-Post-Page-Card",
            AvailableWithoutTag = false,
            Tags = new[] { "blogpost" },
            Inherit = false,
            Path = "~/Views/Shared/Partials/FeaturedContent/Index.cshtml"

For reference: here are some images:  (Ignore the first content area)

Before Editing/After Refresh/After publish

After editing: 

Website view:

Edited, Feb 23, 2024 22:33
Daniel van der Merwe - Feb 24, 2024 4:40
This might be an obvious question but are you sure you published?
I can see "Changes to be published" shown on your "After editing" screenshot.

Hi Justin,

I can't see anything wrong with your implementation.

However just to be sure can you share the 'Blog Main Page' controller?



Feb 23, 2024 23:15

Thank you Daniel. I have tried publishing, but the reason I did not press the publish button for that screenshot, was because when I press it, the content disappeared.

See the first screenshot for what it would have looked like had I pressed publish.

Hi Paul,

Thank you for telling me to look in my controller!!

I found the issue was in my ViewModel Constructor.

I forgot to pass the value of the contentarea from my `BlogMainPage` to my `BlogMainPageViewModel`

The issue is no longer happening.  See below for reference.

in BlogMainPageController.cs...

	public class BlogMainPageController : PageController<BlogMainPage>
		private readonly IContentLoader _contentLoader;
		public BlogMainPageController(
			IContentLoader contentLoader)
			_contentLoader = contentLoader;
		public IActionResult Index(BlogMainPage currentContent)
			var model = new BlogMainPageViewModel(currentContent);
			return View(model);


in BlogMainPageViewModel.cs...

    public class BlogMainPageViewModel : BlogMainPage
        public IEnumerable<BlogMainPage> BlogPosts;
        public BlogMainPageViewModel(BlogMainPage model)
            Title = model.Title;
            Subheading = model.Subheading;
	    Description = model.Description;
            BlogCards = model.BlogCards;   //line that was missing that fixed my issue
Edited, Feb 25, 2024 15:39
Daniel van der Merwe - Feb 26, 2024 3:09
Glad you're sorted. Happy coding!
Paul McGann (Netcel) - Feb 26, 2024 9:44
Glad you got sorted Justin.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.