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?
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);
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);