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

Find document type in complex structure Umbraco 7

我的内容结构如下。

每个 Home 文档类型都连接到一个主布局模板。 在我的主布局中,我尝试通过编写此代码来找到 Home 节点。

var home = Model.Content.Siblings().FirstOrDefault(x => x.DocumentTypeAlias == "Home");

这在我在 Home 节点上时有效,但当我转到 ex 时。 Page 1 我得到一个例外,因为 Home 不是 Page 1 的兄弟姐妹。

然后我试了这个。

var home= Umbraco.TypedContentAtXPath("//Home").FirstOrDefault();

这在我处于 Website A 时有效,因为它返回了第一个节点。 但是当在 Website B 时,我仍然得到 Website A 节点,这是错误的。

关于如何解决这个问题的任何提示?

我找到了解决方法:

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

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

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