1
我想我需要一點幫助,在這裏使用Razor viewengine渲染Umbraco中的遞歸樹菜單結構。剃刀遞歸樹形菜單結構
我需要呈現以下樹形菜單結構:
Page 1
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
所以,當我在Page 5
我需要的父節點上使用CSS類"open"
:Page 4
,Page 2
和Page 1
和CSS類"active"
上我站在的節點。
我得呈現在菜單中點擊鏈接時,正確的節點結構,但我根本無法弄清楚如何運用正確的類:-(
我的代碼如下:
@{
DynamicNode current = Model;
var nodes = Model.AncestorOrSelf(2).Children.Where("Visible");
if(nodes.Any())
{
<ul class="side-nav-list">
@foreach(var node in nodes)
{
bool isDescendantOrSelf = current.IsDescendantOrSelf(node);
<li>
<a href="@node.Url">@node.Name</a>
@if(isDescendantOrSelf)
{
@RenderSubMenuRecursive(node)
}
</li>
}
</ul>
}
}
@helper RenderSubMenuRecursive(DynamicNode node)
{
if(node.Children.Any(x => x.GetPropertyValue("umbracoNaviHide").Equals("0") && Model.IsDescendantOrSelf(node)))
{
var childNodes = node.Children.Where(x => x.GetPropertyValue("umbracoNaviHide").Equals("0"));
string css = node.IsAncestor(Model) ? "open" : "";
<ul>
@foreach(var childNode in childNodes)
{
<li class="@css">
<a href="@childNode.Url">@childNode.Name</a>
@if (childNode.IsDescendantOrSelf(node))
{
@RenderSubMenuRecursive(childNode)
}
</li>
}
</ul>
}
}
任何幫助/提示對此非常感謝!:-)提前致謝!
您好,我試圖讓這對一個項目中,我目前做的工作,但它的錯誤了。你可以發佈頁面的完整代碼,因爲我想我錯過了一些@using NAMSPACE的東西? – 2013-09-12 09:56:57