我正在尝试构建一个多级dropdrown菜单,我正在使用umbraco cms。
我正在寻找的是:
<div id="TopMenu">
<ul class="myMenu">
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Products</a>
<ul>
<li><a href="#">Products1</a></li>
<li><a href="#">Products2</a></li>
<li><a href="#">Products3</a></li>
</ul>
</li>
<li><a href="#">ContactUs</a></li>
</ul>
</div><!--TopMenu-->
在Umbraco,我创建了cshtml,以便它可以工作:
<ul class="myMenu">
<li><a href="/">Home</a> </li>
@foreach (var page in @Model.AncestorOrSelf(1).Children)
{
string style = "";
if (1 == 1) { style = "class=\"current\""; }
<li><a href="@page.Url" @style>@page.Name</a></li>
}
Above razor语法适用于AncestorOrSelf(1),它是顶级,但我需要产品的子节点是AncestorOrSelf(2),有没有人知道如何实现这个
感谢名单
答案 0 :(得分:9)
这是我目前在项目中使用的剃刀代码:
@foreach (var page in Model.AncestorOrSelf(1).Children.Where("Visible"))
{
<li><a href="@page.Url">@page.Name</a>
if (page.Children.Where("Visible").Count() > 0)
{
<ul>
@foreach (var subpage in page.Children.Where("Visible"))
{
<li><a href="@subpage.Url">@subpage.Name</a></li>
}
</ul>
}
</li>
}
内部循环遍历外部循环节点的所有子节点。