EpiServer - IContentLoader returns 过滤起始页时的不同页面类型

EpiServer - IContentLoader returns different page types when filtering for the start page

我正在尝试获取 Razor 代码中的起始页,以便我可以根据起始页显示不同的导航。我是这样做的:

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

这就是调试器中显示的内容。我原以为只会看到 Start 类型的页面。但是我看到了英雄页面和所有内容。知道这里发生了什么吗?

我能够通过传入根页面和起始页对象的 ContentReference 来解决这个问题。

var pages = contentLoader.GetChildren<namespace.StartPage>(ContentReference.RootPage);

如果您想要获取起始页(仅一个实例)并且它与在管理模式下被选为起始页以配置您的站点的起始页相同,您应该执行以下操作

var startPage = contentLoader.Get<StartPage>(ContentReference.StartPage);