使用 MVC 站点地图时如何更改面包屑中的 parents parent?

When using MVC Site Map how do you change the parents parent in the breadcrumb?

您好,我正在使用 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)

我试图影响此节点的标题,它基本上是 Parent节点的 Parent,用于面包屑。

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

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

在控制器中,您可以访问具有更高优先级的任何节点。

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

如果您想使用相同的操作,但可能使用不同的标题,具体取决于路由值或其他一些参数,这也很有用。