在Umbraco Razor导航中输出顶级节点

Nix*_*Nix 3 umbraco razor umbraco7

我正在努力用一个非常简单的Umbraco 7导航.基本上,我在一个解决方案中有几个"站点" - 或者,相同的站点,但是对于不同的国家和语言.他们的主页是顶级节点,所有子页面都嵌套在2级及以下.

这适用于各个站点(输出1级节点的子级).但是,我想创建第二个菜单,它只输出顶级节点,我可以在不同的站点之间切换.由于某种原因,我不能这样做.

@inherits UmbracoTemplatePage
@{
  var homePage = CurrentPage.AncestorsOrSelf(1).First();
  var subItems = homePage.Children;

  var rootItems = homePage.Siblings;
}

<ul>
  @foreach (var item in subItems) {
  <li>@item.Name</li>
  }
</ul>

<ul>
  @foreach (var item in rootItems) {
  <li>@item.Name</li>
  }
</ul>
Run Code Online (Sandbox Code Playgroud)

它完美地输出第一个列表,但第二个列表没有输出.如果我尝试输出@homePage.Name它确实给了我一个输出,所以我知道根项是可访问的.

理想情况下,我希望它在第二个导航中输出所有根节点(基本上SiblinbsOrSelf()).

我究竟做错了什么?

Lov*_*own 8

要获取根级别的所有节点:

var rootNodes = Umbraco.TypedContentAtRoot();
Run Code Online (Sandbox Code Playgroud)

这将包括当前页面,必要时可以省略.

ul根据需要输出它:

<ul>
    @foreach (var n in rootNodes)
    {
        <li>
            @n.Name
        </li>
    }
</ul>
Run Code Online (Sandbox Code Playgroud)