如何使用razor脚本设置Umbraco中当前子菜单项的样式

如何使用razor脚本设置Umbraco中当前子菜单项的样式,razor,menu,umbraco,Razor,Menu,Umbraco,我有以下基于当前文档创建子菜单的代码。文档有子菜单,我用它来构建子菜单 当我在当前项目上时,如何检查?当子菜单上的项目是当前项目时,我想设置该项目的样式 我知道我可以做if(Model.Id==page.Id)来查找当前项目,但这不起作用 带着文件 这是我要修改的代码 @foreach (var node in new Document(999).Children) { <li>@node.Id</a> @{ var mychildren = no

我有以下基于当前文档创建子菜单的代码。文档有子菜单,我用它来构建子菜单

当我在当前项目上时,如何检查?当子菜单上的项目是当前项目时,我想设置该项目的样式

我知道我可以做
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>
    }
}
@foreach(新文档中的var节点(999).Children)
{
  • @node.Id @{var mychildren=node.Children; 如果(mychildren.Count()>0) {
    • @node.id
    • @foreach(mychildren中的变量snode) {
    • @snode.id
    • }
    }
  • } }
    为什么不使用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);
    }
    
      @foreach(新库中的var节点.NodeNyId(999).Children) { @{ var mychildren=node.Children; 如果(mychildren.Count()>0) {
        @foreach(mychildren中的变量snode) { }
      } } } }
    @助手类(动态节点) { 字符串类=”; if(Model.Id==node.Id) { class=“class=\”活动\”; } @Html.Raw(类); }

    (Library.NodeById方法返回一个DynamicNode对象。)

    为什么不使用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);
    }
    
      @foreach(新库中的var节点.NodeNyId(999).Children) { @{ var mychildren=node.Children; 如果(mychildren.Count()>0) {
        @foreach(mychildren中的变量snode) { }
      } } } }
    @助手类(动态节点) { 字符串类=”; if(Model.Id==node.Id) { class=“class=\”活动\”; } @Html.Raw(类); }

    (Library.NodeById方法返回一个DynamicNode对象。)

    谢谢。你救了我一天。这就是我要找的!非常感谢。你救了我一天。这就是我要找的!