我需要知道当前页面是否是EpiServer页面。我需要知道当前页面是否是起始页面,我使用以下代码行。
if(PageReference.StartPage.ID == CurrentPage.PageLink.ID)
这适用于所有EPiServers,但是当我在非EPiServer页面上时,CurrentPage会返回StarPage的值。这意味着我的所有非EPiServer页面都被视为一个StartPage(当然在我的if语句中)。
我想到的一个解决方案是首先检查页面是否是EPiServer页面?但不知道该怎么做。我可以获得一个页面的课程,或者我如何实现这一目标?
有任何想法或建议吗?
提前致谢。
答案 0 :(得分:3)
您的非EPiServer页面是否只是自定义的aspx页面?如果遇到这种情况,您可以通过检查Page的类型来检查当前页面是否从EPiServer页面继承。我相信所有EPiServer页面都继承自PageBase。
if (Page is EPiServer.PageBase) {...}
答案 1 :(得分:0)
这不是一件好事,但是如果你不想将非EPi页面连接到单独页面类型的真实页面实例,我想你最好的选择是检查Request.Url或者正在处理的ASPX文件的文件名。
答案 2 :(得分:0)
有一个很棒的有用代码库,可以更轻松地使用EPiServer。
下载EPiCode extensions library并将其添加到您的项目中。
这有一个可以使用的扩展方法IsEPiServerPage。方法来源是:
public static bool IsEPiServerPage(this PageData page)
{
return page != null && page.PageLink != null && page.PageLink.ID > 0;
}