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

时间:2015-09-27 15:53:59

标签: razor umbraco umbraco7

我的内容采用以下方式构建。

    • 网站A.
      • 主页
        • Page 1
        • Page 2
        • Page N
    • 网站B.
      • 主页
    • 网站C.
      • 主页

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

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

这适用于Home节点上的im,但是当我转到前面时。 Page 1我收到了例外,因为Home不是Page 1的兄弟。

然后我试了一下。

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

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

有关如何解决此问题的任何提示?

2 个答案:

答案 0 :(得分:4)

实现这一目标的几种不同方法,但以下将是最简洁的:

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

答案 1 :(得分:0)

我找到了解决方案:

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