如何区分当前页面是否为EPiServer页面

时间:2011-04-28 14:47:53

标签: episerver current-page

我需要知道当前页面是否是EpiServer页面。我需要知道当前页面是否是起始页面,我使用以下代码行。

if(PageReference.StartPage.ID == CurrentPage.PageLink.ID)

这适用于所有EPiServers,但是当我在非EPiServer页面上时,CurrentPage会返回StarPage的值。这意味着我的所有非EPiServer页面都被视为一个StartPage(当然在我的if语句中)。

我想到的一个解决方案是首先检查页面是否是EPiServer页面?但不知道该怎么做。我可以获得一个页面的课程,或者我如何实现这一目标?

有任何想法或建议吗?

提前致谢。

3 个答案:

答案 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;
    }