我有以下代码,可以根据当前文档创建子菜单。该文档有子项,我用它来构建子菜单。
如何查看我当前的项目?当项目是当前项目时,我想在子菜单上设置项目样式。
我知道我可以if (Model.Id == page.Id)
找到当前项目,但这不起作用
与文件。
这是我要修改的代码。
@foreach (var node in new Document(999).Children)
{
<li>@node.Id</a>
@{ var mychildren = node.Children;
if (mychildren.Count() > 0)
{
<ul>
<li>@node.id</a></li>
@foreach (var snode in mychildren)
{
<li>@snode.id</a></li>
}
</ul>
}
</li>
}
}
答案 0 :(得分:4)
为什么不使用DynamicNode而不是Document,然后使用帮助程序检查并添加类?例如:
<ul>
@foreach (var node in new Library.NodeNyId(999).Children)
{
<li@getClasses(node)><a href="@node.NiceUrl">@node.Name</a></li>
@{
var mychildren = node.Children;
if (mychildren.Count() > 0)
{
<ul>
@foreach (var snode in mychildren)
{
<li@getClasses(snode)><a href="@snode.NiceUrl">@snode.Name</a></li>
}
</ul>
}
}
</li>
}
}
</ul>
@helper getClasses(dynamic node)
{
string classes = "";
if (Model.Id == node.Id)
{
classes = " class=\"active\"";
}
@Html.Raw(classes);
}
(Library.NodeById方法返回一个DynamicNode对象。)