gpt4 book ai didi

asp.net-mvc - 是否可以向 MvcSiteMap 菜单节点添加分隔符?

转载 作者:行者123 更新时间:2023-12-02 00:29:51 25 4
gpt4 key购买 nike

我希望能够在使用 MvcSiteMap 库创建的菜单中添加分隔栏。

mvcSiteMapNodes 解析为 <li></li>里面有 Action 方法的项目。但是,我只想要一个假人 <li class="divider"></li>在我的菜单中呈现分隔项的节点。

例如

<mvcSiteMapNode title="Admin" url="#admin" roles="Admin">
<mvcSiteMapNode title="Edit Users" controller="User" action="Users" roles="Admin" />
<mvcSiteMapNode class="divider" />
<mvcSiteMapNode title="User Audit" controller="User" action="Audit" roles="Admin" />
</mvcSiteMapNode>

有人知道如何实现吗?

最佳答案

处理此问题的最佳方法是将站点地图分隔符节点放在 xml 站点地图文件中,并将可点击属性设置为 false。如果它需要 Controller 和/或操作,那么专门为分隔符制作一个。

然后创建您自己的模板来呈现菜单。在模板中,您可以检查节点模型并将您想要的任何 html 属性放入呈现的结果中。因此,如果站点地图节点的可点击属性为 false,您可以在 html 类属性中插入一个字符串,并根据需要设置您的 css 样式。

请参阅此 url 中的“自定义渲染输出”部分:https://github.com/maartenba/MvcSiteMapProvider/wiki/HtmlHelper-functions

<%@ Control Language="C#"Inherits="System.Web.Mvc.ViewUserControl<MvcSiteMapProvider.Web.Html.Models.SiteMapNodeModel>" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>

<% if (Model.IsCurrentNode && Model.SourceMetadata["HtmlHelper"].ToString() != "MvcSiteMapProvider.Web.Html.MenuHelper") { %>
<%=Model.Title %>
<% } else if (Model.IsClickable) { %>
<a href="<%=Model.Url %>"><%=Model.Title %></a>
<% } else { %>
<%=Model.Title %>
<% } %>

关于asp.net-mvc - 是否可以向 MvcSiteMap 菜单节点添加分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7473004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com