我的网站应该打印以下菜单:
根菜单不应该是任何链接,它只是一个容纳实际子菜单的容器。 可以用mvcSiteMap完成吗?
我尝试了以下操作,但“List”从不是CurrentNode。 “客户”总是得到IsCurrentNode,因为我不能应用写css:
<mvcSiteMapNode title="Home" controller="Home" action="Index" visibility="MenuHelper,!*">
<mvcSiteMapNode title="Customers" controller="Customer" action="Index" area="Admin" clickable="false" description="Todos os clientes cadastrados" cssClass="icon-group">
<mvcSiteMapNode title="List" action="Index" description="Todos os clientes cadastrados"/>
<mvcSiteMapNode title="the customers" action="Details" preservedRouteParameters="customerId" visibility="SiteMapPathHelper,!*"/>
<mvcSiteMapNode title="New" action="New" />
</mvcSiteMapNode>
</mvcSiteMapNode>
答案 0 :(得分:3)
您只需要从不可点击的分组节点中删除“索引”,以便永远不会匹配。基本上,这里有2个节点具有完全相同的路由签名:
面积= “管理” 控制器=“客户” 行动= “索引”
在SiteMap中匹配的第一个总是获胜。因此,如果您从第一个删除“索引”(您可以因为它不可点击,因此在该节点上忽略所有路由设置但仍可继承),只要您有一个,它就永远不会匹配在您的路线中配置默认操作。
<mvcSiteMapNode title="Home" controller="Home" action="Index" visibility="MenuHelper,!*">
<mvcSiteMapNode title="Customers" controller="Customer" area="Admin" clickable="false" description="Todos os clientes cadastrados" cssClass="icon-group">
<mvcSiteMapNode title="List" action="Index" description="Todos os clientes cadastrados"/>
<mvcSiteMapNode title="the customers" action="Details" preservedRouteParameters="customerId" visibility="SiteMapPathHelper,!*"/>
<mvcSiteMapNode title="New" action="New" />
</mvcSiteMapNode>
</mvcSiteMapNode>