我正在尝试动态地将引导导航栏构建到局部视图中。每个东西似乎都适用于顶级菜单,但是当我添加代码循环查找并添加子项时,Razor似乎不太喜欢它。
<ul class="nav navbar-nav">
@foreach (var item in Model.Where(x => x.ParentID == null))
{
<li name="@item.menusID" class="">
<a href="#">@item.text</a>
@foreach (var childItem in Model.Where(x => x.ParentID.Equals(item.menusID)))
{
if (Model.Where(x => x.ParentID.Equals(item.menusID)).First() == childItem)
{
<ul class="dropdown-menu"><li><a href="#">@childItem.text</a></li>
}
else if (Model.Where(x => x.ParentID.Equals(item.menusID)).Last() == childItem) @*Problem here*@
{
<li><a href="#">@childItem.text</a></li></ul>
}
else
{
<li><a href="#">@childItem.text</a></li>
}
}
</li>
}
上面的代码无法识别else,如果在我尝试的中心找到列表中的最后一项以关闭<ul>
并结束下拉列表部分。如果我从整个if else if语句中删除HTML没有错误,它似乎运行。我甚至尝试使用多个if语句而不是其他但没有运气,这似乎比我的更糟糕。我知道我可以在控制器中运行此代码并将其作为一个视图包发送,但我想知道出了什么问题,我是否错过了什么?我读到的一些帖子建议使用<text>
标签,但我无法看到它使用此代码,因为我正在构建列表而不是文本块。