2017-06-01 66 views
1

您好我正在使用c#mvc MvcSiteMapProvider。使用MVC網站地圖時如何更改麪包屑中的父母父母?

我有我的網站的一部分在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"> 

你是如何做到這一點的? 謝謝 理查德

回答

0

在控制器內,您可以訪問任何節點更大的presion。

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

如果說你想用同樣的動作,但也許是一個不同的標題取決於路由值或其他一些參數,這也是有用的。