我有一个菜单项如下。我正在尝试在剃刀视图中绑定这些项目。我正确地获得了第二级菜单项,但是如何获得第三级菜单项。
@foreach (var item in Model)
{
if (item.isParent == false && item.parentId == 0)
{
<li><a href="@Url.Action(item.action, item.controller)"><i class="@item.imageClass"></i> @item.nameOption</a></li>
}
else
{
if (item.isParent == true)
{
<li>
<a href="#"><i class="@item.imageClass"></i> @item.nameOption<span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
@foreach (var child in Model.Where(p => p.parentId == item.Id))
{
if (child.controller == null)
{
<li><a href="#">@child.nameOption</a></li>
}
else
{
<li><a href="@Url.Action(child.action, child.controller)">@child.nameOption</a></li>
}
}
</ul>
</li>
}
}
}
</ul>
“工单”是“维护”下的菜单项。 “已分配”和“公司”是菜单项“工作订单”。
以下代码将绑定我的第二级菜单项。我如何为第3级菜单项做到这一点。 ?..请帮帮我..谢谢..
ClipSaved := ClipboardAll ; Save the entire clipboard to the variable ClipSaved
clipboard = %A_ScriptDir%
; ClipWait
; do sth e.g, ; SendInput, ^v
Clipboard := ClipSaved ; Restore the original clipboard
答案 0 :(得分:0)
使用可以递归调用的辅助函数。
您需要更改导航栏类,以便它包含导航栏列表
public class NavBar
{
/// <summary>
/// Gets or Sets the Children
/// </summary>
public virtual ICollection<NavBar> Children { get; set; }
.....
}
然后像这样创建你的菜单
menu.Add(new Navbar
{
Id = 2, nameOption = "Maintenance", controller = "MaintenancePlan", action = "Index", imageClass = "fa fa-wrench fa-fw", status = true, isParent = true, parentId = 0,
childeren = new Collection<Navbar>
{
new Navbar{..., Children = new Collection<NavBar>
{
...
}},
new Navbar{...}
}
});
并在你的razer视图中看到这样的事情。
@{
foreach (var item in Model)
{
createMenuItem(item);
}
}
@helper createMenuItem(Navbar item)
{
if (item.Children.Any())
{
foreach (var child in item.Children)
{
createMenuItem(child);
}
}
<li>...</li>
}
答案 1 :(得分:0)
我相信我们会有很多方法可以做到。我按照以下方法。
@foreach (var item in Model)
{
if (item.isParent == false && item.parentId == 0)
{
<li><a href="@Url.Action(item.action, item.controller)"><i class="@item.imageClass"></i> @item.nameOption</a></li>
}
else
{
if (item.isParent == true && item.parentId == 0)
{
<li>
<a href="#"><i class="@item.imageClass"></i> @item.nameOption<span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
@foreach (var child in Model.Where(p => p.parentId == item.Id))
{
if (child.controller == null)
{
<li><a href="#">@child.nameOption</a></li>
}
else
{
if (child.isParent == true)
{
<li>
<a href="@Url.Action(child.action, child.controller)"><i class="@child.imageClass"></i> @child.nameOption<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
@foreach (var childInside in Model.Where(p => p.parentId == child.Id))
{
if (childInside.controller == null)
{
<li><a href="#">@childInside.nameOption</a></li>
}
else
{
<li><a href="@Url.Action(child.action, child.controller)">@childInside.nameOption</a></li>
}
}
</ul>
</li>
}
else
{
<li><a href="@Url.Action(child.action, child.controller)">@child.nameOption</a></li>
}
}
}
</ul>
</li>
}
}
}
我保持收藏相同。