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