【问题标题】:How to get the "Page type" for the current page. EPiServer如何获取当前页面的“页面类型”。外延服务器
【发布时间】:2011-07-26 03:19:42
【问题描述】:

如何获取当前页面的页面类型。我试过了

CurrentPage.GetType();

但没有成功。我需要检查页面类型是否等于特定类型才能执行某些操作。

谢谢

【问题讨论】:

    标签: types episerver current-page


    【解决方案1】:

    您需要检查PageTypeNamePageTypeID 属性,如下所示:

    if(CurrentPage.PageTypeName == "StartPage")
        // Do something
    

    查看参考:http://sdk.episerver.com/library/cms5/html/AllMembers_T_EPiServer_Core_PageData.htm

    GetType() 方法在 System.Object 上声明并返回对象的 System.Type。由于所有类型都继承自 System.Object,因此它适用于 .NET Framework 中的所有类型。

    【讨论】:

    • 我也有类似的问题。我有一个同时包含 EpiServer 页面和非 EpiServer 页面的站点,问题是当检查非 EpiServer 页面上的类型时,“CurrentPage”返回值,就好像我在起始页中一样。我需要检查该页面是否为 EpiServer 页面。谢谢
    • 您的 EPiServer 页面可能继承自某个基类,而其他页面没有,对吧?只需检查页面中的if(this is MyEpiPageBaseClass) 就可以了。
    【解决方案2】:

    通过页面类型构建器强类型类,您可以使用 C# is 关键字

    例如

    if (CurrentPage is SomeStronglyTypeClass) 
    

    【讨论】:

      【解决方案3】:

      CurrentPage.PageTypeName 为您提供 PageType 的名称

      【讨论】:

        【解决方案4】:

        如果您使用的是页面类型生成器,您还可以使用 PageTypeResolver 类。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-07
          • 2022-11-02
          • 2010-09-16
          • 2015-12-16
          • 2013-04-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多