IContentLoader returns different page types when filtering for the start page


I'm trying to get the start page in Razor code so I can display different navs based on the start page. Here's how I'm doing it:

var contentLoader = EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IContentLoader>();
var pages = contentLoader.GetChildren<PageData>(ContentReference.StartPage);

This is what shows up in the debugger. I was expecting to only see pages of type, Start. But I'm seeing Hero pages and everything. Any ideas what's going on here?

Apr 13, 2022 15:25

I was able to resolve this by passing in the ContentReference for the root page and my start page object.

var pages = contentLoader.GetChildren<namespace.StartPage>(ContentReference.RootPage);
Apr 13, 2022 16:53


It looks like what's going on in the first scenario is that you were retrieving all of the child pages of the start page rather than the start page itself. If you're after just the start page of the current site you're viewing you can do something like this:

var startPage = contentLoader.Get<StartPage>(ContentReference.StartPage);
Apr 13, 2022 17:02
* 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.