Я создал многоуровневое меню в mvc. он работает, но я хочу сделать счет уровня неограниченным. Сейчас есть 4 уровня, поэтому в будущем, если кто-то хочет добавить 5. уровень в базу данных, он не появится в моем меню. Мне нужно добавить еще один цикл foreach для отображения уровня 5.. Итак, как я могу сделать мое меню неограниченным?Неограниченное многоуровневое меню в mvc
вот мое меню.
@{
var myMenu = @Model;
var navbarmenu = myMenu.Where(x => x.ParentID == null);
var i = 0;
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class=" nav navbar-nav">
@foreach (var menuLevel1 in navbarmenu)
{
<li class="dropdown">
<a href="~/ADDS/Default.aspx" style="font-size:16px;">
@menuLevel1.MenuName
@if (menuLevel1.MenuName != "Home")
{
<span class="caret"></span>
}
</a>
@{ var navbarsubmenu = myMenu.Where(x => x.ParentID == menuLevel1.MenuID);}
@if (navbarsubmenu.IsAny())
{
<ul class="dropdown-menu">
@foreach (var menuLevel2 in navbarsubmenu)
{
<li class="dropdown-submenu">
@if (!string.IsNullOrEmpty(menuLevel2.MenuLink))
{
<a href="@Url.Content(menuLevel2.MenuLink)">
@menuLevel2.MenuName
</a>
}
else
{
<a href="~/ADDS/Default.aspx">
@menuLevel2.MenuName
</a>
}
@{var navbarsubmenu2 = myMenu.Where(x => x.ParentID == menuLevel2.MenuID);}
@if (navbarsubmenu2.IsAny())
{
<ul class="dropdown-menu">
@foreach (var menuLevel3 in navbarsubmenu2)
{
<li class="dropdown-submenu">
@if (!string.IsNullOrEmpty(menuLevel3.MenuLink))
{
<a href="@Url.Content(menuLevel3.MenuLink)">
@menuLevel3.MenuName
</a>
}
else
{
<a href="~/ADDS/Default.aspx">
@menuLevel3.MenuName
</a>
}
@{var navbarsubmenu3 = myMenu.Where(x => x.ParentID == menuLevel3.MenuID);}
@if (navbarsubmenu3.IsAny())
{
<ul class="dropdown-menu">
@foreach (var menuLevel4 in navbarsubmenu3)
{
<li class="dropdown-submenu">
@if (!string.IsNullOrEmpty(menuLevel4.MenuLink))
{
<a href="@Url.Content(menuLevel4.MenuLink)">
@menuLevel4.MenuName
</a>
}
else
{
<a href="~/ADDS/Default.aspx">
@menuLevel4.MenuName
</a>
}
</li>
}
</ul>
}
</li>
}
</ul>
}
</li>
}
</ul>
}
</li>
}
</ul>
</div>
</div>
</nav>
}
Использование иерархической модели и рекурсивную функцию - для примера с использованием метода расширения HtmlHelper см [этот ответ] (http://stackoverflow.com/questions/27146524/how-to-render-singly- link-list-in-mvc-view-page/27147744 # 27147744) –