Umbraco 7 Razor-查找家长

本文关键字:查找家 Razor- Umbraco | 更新日期: 2023-09-27 18:26:53

我使用的是Umbraco 7,我想要一个局部视图来呈现从树上某个点开始的左导航,在那里它可以找到一个具有特定属性集的页面。

我试过这个,但它只适用于树下1层的固定深度。我想从网站的任何深度做这件事,并让它递归,直到它找到一个项目,并将其作为左导航的根。

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
    @* Get the item above this one that has a property of resetLeftNav ticked *@
    var root = CurrentPage.AncestorOrSelf(1).Children.Where("resetLeftNav").First(); 
}
<ul class="nav left-nav">
    @foreach(var page in root.Children)
    {
        <li class="">
            <a href="@page.Url">@page.Name</a>
        </li>
    }
</ul>

Umbraco 7 Razor-查找家长

您可以使用:

var root = Model.Content.AncestorsOrSelf().First(
                 x => x.GetPropertyValue<bool>("resetLeftNav")
              );

唯一的区别是你在寻找一个单一的祖先。我的都在找,这让我可以做检查,然后拿第一个。