Razor 在复杂结构Umbraco 7中查找文档类型

Razor 在复杂结构Umbraco 7中查找文档类型,razor,umbraco,umbraco7,Razor,Umbraco,Umbraco7,我的内容结构如下 根 网站A 家 第1页 第2页 第N页 网站B 家 网站C 家 每个Home文档类型都连接到主布局模板。 在主布局中,我试图通过编写以下代码来找到Home节点 var home = Model.Content.Siblings().FirstOrDefault(x => x.DocumentTypeAlias == "Home"); 当im在主页节点上时,这一点有效,但当我转到例如第1页时,我会得到一个异常,因为主页不是第1页的同级 然后我试了这

我的内容结构如下

    • 网站A
        • 第1页
        • 第2页
        • 第N页
    • 网站B
    • 网站C
每个
Home
文档类型都连接到主布局模板。 在主布局中,我试图通过编写以下代码来找到
Home
节点

var home = Model.Content.Siblings().FirstOrDefault(x => x.DocumentTypeAlias == "Home");
当im在
主页
节点上时,这一点有效,但当我转到例如
第1页
时,我会得到一个异常,因为
主页
不是
第1页
的同级

然后我试了这个

var home= Umbraco.TypedContentAtXPath("//Home").FirstOrDefault();
当我在
websitea
时,它就工作了,因为它返回了第一个节点。 但在
网站B
时,我仍然得到
网站A
节点,这是错误的


关于如何解决这个问题有什么建议吗?

我找到了一个解决方案:

var home = Model.Content.AncestorOrSelf(2).Children().FirstOrDefault(x => x.DocumentTypeAlias == "Home");

我找到了解决办法:

var home = Model.Content.AncestorOrSelf(2).Children().FirstOrDefault(x => x.DocumentTypeAlias == "Home");

有几种不同的方法可以实现这一点,但以下是最简洁的方法:

var home = Model.Content.AncestorsOrSelf("Home").FirstOrDefault();

有几种不同的方法可以实现这一点,但以下是最简洁的方法:

var home = Model.Content.AncestorsOrSelf("Home").FirstOrDefault();