如何检查页面或节点(IPublishedContent)是否使用特定的继承文档类型?

时间:2017-06-07 14:36:44

标签: umbraco umbraco7

我的文档类型 Page 继承自父文档类型 Page Base

在呈现的页面上,我可以看到文档类型是否等于页面文档类型别名:

// Where Model is type Umbraco.Web.Models.RenderModel.
if (Model.Content.DocumentTypeAlias == "page")
{
    // My current page uses the "page" document type.
}

但是,如何查看我的IPublishedContent是否继承自 Page Base

1 个答案:

答案 0 :(得分:1)

原来在IPublishedContent类型上有一种方法:

// Where Model is type Umbraco.Web.Models.RenderModel.
if (Model.Content.IsDocumentType("pageBase", true))
{
    // My current page uses the "pageBase" document type.
}

接受布尔值的.IsDocumentType()上的重载称为recursive,它会检查您的IPublishedContent是提供的文档类型,还是从该文档类型派生的。 / p>

更新:但是!!

如果您的文档类型存储在文件夹中,则存在使用递归.IsDocumentType()的错误。此问题已记录here

相反,您可以使用.IsComposedOf()

// Where Model is type Umbraco.Web.Models.RenderModel.
if (Model.Content.IsComposedOf("pageBase"))
{
    // My current page uses the "pageBase" document type.
}

此方法都检查文档类型组成和继承。

此方法与递归.IsDocumentType()不同,因为它只检查继承/组合,而不是当前的doc类型是提供的别名。