我正在努力使用非常简单的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>
它完美地输出第一个列表,但第二个列表没有输出。如果我尝试输出@homePage.Name
它会给我一个输出,所以我知道根项是可访问的。
理想情况下,我希望它在第二个导航中输出所有根节点(基本上是SiblinbsOrSelf()
)。
我做错了什么?
答案 0 :(得分:8)
获取根级别的所有节点:
var rootNodes = Umbraco.TypedContentAtRoot();
这将包括当前页面,必要时可以省略。
根据需要在ul
输出:
<ul>
@foreach (var n in rootNodes)
{
<li>
@n.Name
</li>
}
</ul>