Orchardcms Orchard单独显示子AV链接

Orchardcms Orchard单独显示子AV链接,orchardcms,Orchardcms,我试图在布局(主题)中单独显示subnav链接 我已经覆盖了MenuItem.cshtml,它只显示“根”级别的导航链接。但是现在我想知道如何从Layout.cshtml中的模型中访问Menu.Items 我会将模型转换为什么,以暴露菜单项 示例:产品1.0,支持2.0 查看产品页面时,您将看到 电子1.1 家具1.2 office supplies 1.3我不知道您想要实现什么,但我建议您看看:它具有易于使用的分层菜单和菜单小部件,您可以在布局中包含这些功能,以便轻松显示独立的菜单或子菜单。我

我试图在布局(主题)中单独显示subnav链接

我已经覆盖了MenuItem.cshtml,它只显示“根”级别的导航链接。但是现在我想知道如何从Layout.cshtml中的模型中访问Menu.Items

我会将模型转换为什么,以暴露菜单项

示例:产品1.0,支持2.0

查看产品页面时,您将看到 电子1.1 家具1.2
office supplies 1.3我不知道您想要实现什么,但我建议您看看:它具有易于使用的分层菜单和菜单小部件,您可以在布局中包含这些功能,以便轻松显示独立的菜单或子菜单。

我在高级菜单方面运气不太好。它有一些错误,阻止我使用它

我发现我的解决方案不是最漂亮的代码,需要重构,但它是: 我渲染了一个局部视图,用于投射模型。导航

Layout.cshtml的代码,我希望在其中显示第二个(子菜单)
@{Html.RenderPartial(“SubNavMenu”,(IEnumerable)Model.Navigation);}

部分视图中的代码

    @model IEnumerable<dynamic>

@{
    IEnumerable<dynamic> subNavLinks = null;
    string requestUrl = Request.Path.Replace(Request.ApplicationPath, string.Empty).TrimEnd('/').ToUpperInvariant();
    IEnumerable<dynamic> children = Model.FirstOrDefault(x => x.MenuName == "main").Items;
    var menuItems = children.Select(x => x.Item);
    var parent = menuItems.FirstOrDefault(x => x.Text.TextHint.Equals(requestUrl, StringComparison.InvariantCultureIgnoreCase));
    if(parent!=null)
    {
        subNavLinks = menuItems.Where(x => x.Position.StartsWith(parent.Position.Substring(0,1)) && x.Position.Length>1);
    }
}


<nav>
    <ul class="subNav">
    @if (subNavLinks != null)
    {
        foreach (var item in subNavLinks)
        {
            <li><a class="@className" href="@item.Href">@item.Text</a></li>
        }
    }
    </ul>
</nav>
@model IEnumerable
@{
IEnumerable subNavLinks=null;
string requestUrl=Request.Path.Replace(Request.ApplicationPath,string.Empty).TrimEnd('/').ToUpperInvariant();
IEnumerable children=Model.FirstOrDefault(x=>x.MenuName==“main”).Items;
var menuItems=children.Select(x=>x.Item);
var parent=menuItems.FirstOrDefault(x=>x.Text.TextHint.Equals(requestUrl、StringComparison.InvariantCultureIgnoreCase));
如果(父项!=null)
{
subNavLinks=menuItems.Where(x=>x.Position.StartsWith(parent.Position.Substring(0,1))&&x.Position.Length>1);
}
}
    @if(subNavLinks!=null) { foreach(子Avlinks中的变量项) {
  • } }

var subNavLinks=menuItems.Where(x=>x.Position.StartsWith(parentPosition.Substring(0,1))&&x.Position.Length>1)