c# - Umbraco 7 Razor - 找到父级

标签 c# asp.net-mvc razor umbraco umbraco7

我正在使用 Umbraco 7,我想要一个局部 View 来呈现左侧导航,该导航从树上的某个点开始,它会在该点找到具有特定属性集的页面。

我已经试过了,但它只能从树中固定深度 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>

最佳答案

你可以使用:

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

唯一的区别是您正在寻找一个单一的祖先。我的寻找所有这些,这让我可以进行检查,然后取第一个。

关于c# - Umbraco 7 Razor - 找到父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26400302/

相关文章:

c# - 从多个文本框创建 QR 码并将其解码回文本框

Jquery 只读文本框在发布到 MVC Controller 时不可见

asp.net-mvc - ASP.Net MVC中的实时视频聊天+录制解决方案

javascript - MVC3 启用禁用按钮 Razor

C# 正则表达式验证电话号码

c# - 如何在 UWP 中检查有线互联网连接?

c# - 使用 C# 加载网页并单击按钮

asp.net-mvc - Mvc Html.ActionButton

asp.net-mvc - Angular 2 : how to get params from URL without using Routing?

c# - ASP.NET - @ 语法和 <% %> 之间的区别?