您好,我正在使用 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"在 Controller 中有一个违规操作,如下所示。
[MvcSiteMapNode(Key = "ReportsDirectorateDirectorate", ParentKey = "ReportsDirectorate", Title = "Soimething here")]
[SiteMapTitle("team.Division.Name", Target = AttributeTarget.ParentNode)]
[SiteMapTitle("team.Name")]
public ActionResult Team(int teamId)
我试图影响这个节点的标题,它基本上是 ParentNode 的 Parent,用于面包屑。
<mvcSiteMapNode title="Divisions" controller="ReportsDirectorate" action="Directorate" key="ReportsDirectorateDirectorate" preservedRouteParameters="id">
你是如何做到这一点的? 谢谢 理查德
最佳答案
在 Controller 内,您可以更精确地访问任何节点。
MvcSiteMapProvider.SiteMaps.Current.CurrentNode.ParentNode.ParentNode.Title = team.Division.Directorate.Name;
如果您想使用相同的操作,但可能根据路由值或其他一些参数使用不同的标题,这也很有用。
关于c# - 使用 MVC 站点地图时,如何更改面包屑中的父级父级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44307731/