Umbraco - 使用pageId获取Page元素

时间:2013-08-01 09:09:05

标签: c# razor umbraco

我正在使用Umbraco 6.0.1我创建了两个页面,首先是页面元素,如页面标题,正文文本等。 我创建了另一个页面,我希望在第一页中使用页面元素,它们之间没有任何父子关系。 那么是否可以将另一页的页面元素放入Umbraco页面?

2 个答案:

答案 0 :(得分:2)

可能不会出现这种情况,但在Umbraco中始终存在亲子关系。

为了解释,您在内容结构中创建的每个节点都是在ID为-1的主节点下创建的。因此,所有节点都是此节点的子节点。即使您的两个节点位于两个看似独立的内容分支中,它们始终相关。

如果您的两个节点都是根节点,则可以在cshtml视图中访问所有根节点,如下所示:

@Umbraco.TypedContentAtRoot()

然后你可以像这样遍历它们:

@{
    var rootNodes = Umbraco.TypedContentAtRoot();

    var settingsNode = rootNodes.First(x => x.DocumentTypeAlias == "Settings");
    var homeNode = rootNodes.First(x => x.DocumentTypeAlias == "Homepage");
}

然后,您可以访问这些节点上的属性并在视图中显示它们。

最后,大部分信息都可以在http://our.umbraco.org/documentation/Reference/找到,这是一个了解它们如何拼凑在一起的好地方。

答案 1 :(得分:1)

是的,我们可以在没有关系的情况下获得Page,如上面评论中所述 也是目标页面属性。

var currentDoc = new umbraco.cms.businesslogic.web.Document(PageId);

umbraco.cms.businesslogic.property.Property prop = currentDoc.getProperty( "MY_PROPERTY" );