我试图建立一个这样的菜单:
供参考我使用此库 https://github.com/behigh/bootstrap_dropdowns_enhancement
@Html.MvcSiteMap().Menu("BootstrapMenuHelperModel")
@model MenuHelperModel
<nav class="navbar" role="navigation">
<div class="container-fluid menu-container">
<div class="collapse navbar-collapse">
<div class="navbar-header">
<span class="navbar-brand">FAR BACKOFFICE</span>
</div>
<ul class="nav nav-pills">
@foreach (var node in Model.Nodes)
{
if (node.Descendants.Any())
{
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-expanded="false">@node.Title <span class="caret"></span></a>
<ul class="dropdown-menu">
@foreach (var descendant in node.Descendants)
{
if (descendant.Descendants.Any())
{
<li role="presentation" class="dropdown-submenu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-expanded="false">@descendant.Title</a>
<ul class="dropdown-menu">
@foreach (var descendant2 in descendant.Descendants)
{
<li role="presentation">@Html.ActionLink(descendant2.Title, descendant2.Action, descendant2.Controller)</li>
}
</ul>
</li>
}
else
{
<li role="presentation">@Html.ActionLink(descendant.Title, descendant.Action, descendant.Controller)</li>
}
}
</ul>
</li>
}
else
{
<li role="presentation">@Html.ActionLink(node.Title, node.Action, node.Controller)</li>
}
}
</ul>
</div>
</div>
</nav>
我的控制器
[MvcSiteMapNode(Title = "Assembleia", ParentKey = "Home", Key = "Assembleia", Clickable = false, Attributes = @"{ ""visibility"": ""SiteMapPathHelper,MenuHelper,!*"" }")]
public class AssembleiaController : Controller { }
[Route("Assembleia/Comunicado")]
[MvcSiteMapNode(Title = "Comunicado", ParentKey = "Assembleia", Key = "AssembleiaComunicado", Clickable = false, Attributes = @"{ ""visibility"": ""SiteMapPathHelper,MenuHelper,!*"" }")]
public class AssembleiaComunicadoController : AssembleiaController
{
[Route("Assembleia/Comunicado/Enviar")]
[MvcSiteMapNode(Title = "Enviar", ParentKey = "AssembleiaComunicado", Key = "AssembleiaComunicadoEnviar", Attributes = @"{ ""visibility"": ""SiteMapPathHelper,MenuHelper,!*"" }")]
public ActionResult Enviar()
{
return View();
}
[HttpGet]
[Route("Assembleia/Comunicado/Consultar")]
[MvcSiteMapNode(Title = "Consultar", ParentKey = "AssembleiaComunicado", Key = "AssembleiaComunicadoConsultar", Attributes = @"{ ""visibility"": ""SiteMapPathHelper,MenuHelper,!*"" }")]
public ActionResult Consultar()
{
return View();
}
}
因此,我得到了一种奇怪的行为
出了什么问题?
还在GitHub
上询问答案 0 :(得分:0)
node.Descendants
应为node.Children
在这里了解后代与子女的差异,CSS Child vs Descendant selectors(不要介意关于CSS的帖子,这是一种通用模式)