【问题标题】:Using Visibility (Default) attribute in MVCSitemap to show nodes only in breadcrumbs使用 MVCSitemap 中的可见性(默认)属性仅在面包屑中显示节点
【发布时间】:2012-12-09 00:30:15
【问题描述】:

任何使用 MVCSiteMapProvider 包实现单个 xml 文件但菜单和面包屑不同的人。

我的 MVC.Sitemap 与我的菜单和面包屑配合得很好。我为 Home - Products 添加了一个新节点 这是产品控制器上的索引操作 我不希望它出现在我的菜单中,但我确实希望它在有人登陆 /myapp/Products/Index 或 Products/Index 时出现在我的面包屑中

目前我正在使用从示例中提取的 visibility="SiteMapPathHelper,!*" 并且我假设最新的 nuget 包和我的 web.config 设置为

attributesToIgnore="可见性"

这很令人困惑,因为我不明白这是忽略参数还是告诉需要忽略的节点填充了这个参数并且值应该作为条件。

【问题讨论】:

    标签: asp.net-mvc-4 mvcsitemapprovider


    【解决方案1】:

    默认情况下,MvcSiteMapProvider 在您的菜单 XML 声明中看到的任何属性都会添加到 url 参数中。

    所以,如果你有这个:

    <mvcSiteMapNode area="Admin" controller="User" action="Index" title="Users" someRandomAttribute=3/>
    

    站点地图将使用

    /admin/user/index?someRandomAttribute=3 用于 url。

    如果你把 attributesToIgnore="someRandomAttribute" 放在配置中,它会生成的 url 会变成:

    /管理员/用户/索引

    可见性提供程序是一个插件系统 - 默认使用一个“可见性”属性,因此它可以决定节点是否可见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2011-03-29
      相关资源
      最近更新 更多