1

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

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

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

我想到的一个解决方案是首先检查该页面是否为 EPiServer 页面?但不知道如何做到这一点。我可以得到一个页面的类或者我怎样才能做到这一点?

有什么想法或建议吗?

提前致谢。

4

3 回答 3

3

您的非 EPiServer 页面只是自定义 aspx 页面吗?如果是这种情况,您可以通过检查页面的类型来检查当前页面是否继承自 EPiServer 页面。我相信所有 EPiServer 页面都继承自 PageBase。

if (Page is EPiServer.PageBase) {...}
于 2011-04-28T15:24:09.983 回答
0

这不是一件好事,但是如果您不想将非 EPi 页面连接到单独页面类型的真实页面实例,我想您最好的选择是检查 Request.Url 或文件名正在处理的 ASPX 文件。

于 2011-04-28T17:00:55.530 回答
0

有一个很棒的有用代码库,可以让 EPiServer 更容易使用。

下载EPiCode 扩展库并将其添加到您的项目中。

这有一个可以使用的扩展方法 IsEPiServerPage。方法来源是:

    public static bool IsEPiServerPage(this PageData page)
    {
        return page != null && page.PageLink != null && page.PageLink.ID > 0;
    }
于 2011-08-31T11:13:11.283 回答