【问题标题】:When using MVC Site Map how do you change the parents parent in the breadcrumb?使用 MVC 站点地图时,如何更改面包屑中的父级父级?
【发布时间】:2017-06-01 12:36:15
【问题描述】:

您好,我正在使用 c# mvc MvcSiteMapProvider。

我在 mvc.sitemap 文件中设置了我网站的一部分。

<mvcSiteMapNode title="Reports" controller="Reports" action="Index">
      <mvcSiteMapNode title="Directorates" controller="ReportsDirectorate" action="Index" key="ReportsDirectorate">
        <mvcSiteMapNode title="Divisions" controller="ReportsDirectorate" action="Directorate" key="ReportsDirectorateDirectorate" preservedRouteParameters="id">
           <mvcSiteMapNode title="Teams" controller="ReportsDirectorate" action="Division" preservedRouteParameters="id,divisionId">
              <mvcSiteMapNode title="Team" controller="ReportsDirectorate" action="Team" preservedRouteParameters="id,divisionId,teamId"/>
           </mvcSiteMapNode>
        </mvcSiteMapNode>
      </mvcSiteMapNode>

    </mvcSiteMapNode>

最后一个节点 title="team" 在控制器中有这样的违规行为。

 [MvcSiteMapNode(Key  = "ReportsDirectorateDirectorate", ParentKey = "ReportsDirectorate", Title = "Soimething here")]
 [SiteMapTitle("team.Division.Name", Target = AttributeTarget.ParentNode)]
 [SiteMapTitle("team.Name")]
 public ActionResult Team(int teamId)

我试图影响这个节点的标题,它基本上是 ParentNode 的父节点,用于面包屑。

<mvcSiteMapNode title="Divisions" controller="ReportsDirectorate" action="Directorate" key="ReportsDirectorateDirectorate" preservedRouteParameters="id">

你是怎么做到的? 谢谢 理查德

【问题讨论】:

  • 你能用你的代码发布解决方案吗,你是如何让它工作的。
  • 在相关操作中使用下面的代码
  • 谢谢。我有 2 个针对不同区域的不同站点地图。它选择了错误的站点地图并为当前节点返回 null,因此我要求提供代码。

标签: c# asp.net-mvc asp.net-mvc-4 mvcsitemapprovider


【解决方案1】:

在控制器中,您可以访问任何具有更大权限的节点。

 MvcSiteMapProvider.SiteMaps.Current.CurrentNode.ParentNode.ParentNode.Title = team.Division.Directorate.Name;

如果您想使用相同的操作,这也很有用,但可能会根据路由值或其他参数使用不同的标题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多