我正在开发一个动态菜单,下面的代码在视图中工作正常,生成菜单和子菜单都可以。但是它在每个“顶级”项目之后插入一个额外的空 li 。我试过把它分成更小的块,但不行。任何人都可以找出原因吗?
生成的html:
# <ul>
<li class="stylename1">
<a target="" href="/">Home</a>
</li>
<li> </li>
<li class="active stylename">
<a target="" href="/other_page">other_page</a>
<div class="submenubox">
<ul>
</div>
</li>
<li> </li>
#### 视图代码:
<ul>
@foreach (var item in MenuHelper.Top())
{
if (item.Navigation.Show)
{
currstream = item.Layout;
switch (currstream)
{
case "Home":
currstyle = "style-a";
break;
case "Information_Home":
currstyle = "style-b";
break;
default:
currstyle = "style-c";
break;
}
foreach (var subItem in MenuHelper.Sub(item))
{
submenucount++;
}
if (submenucount > 0)
{
@:<li class ='@(MenuHelper.IsCurrent(item) ? "active" : "") @currstyle'>@Html.FrontHtml().PageLink(item.LinkText, item.FullName) <div class='submenubox' ><ul >
foreach (var subItem in MenuHelper.Sub(item))
{
if (item.Navigation.Show)
{
<li class ='@(MenuHelper.IsCurrent(subItem) ? "active" : "") @currstyle'>@Html.FrontHtml().PageLink(subItem.LinkText, subItem.FullName)</li>
}
}
@:</ul></div><li>
}
else
{
@:<li class ='@(MenuHelper.IsCurrent(item) ? "active" : "") @currstyle'>@Html.FrontHtml().PageLink(item.LinkText, item.FullName)<li>
}
submenucount = 0;
}
}
</ul>