c# - 使用 MVC 站点地图时,如何更改面包屑中的父级父级?

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

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

相关文章:

c# - LinqToSql 关联加载

c# - 以编程方式从 Azure Blob 存储连接字符串中提取属性

asp.net-mvc - git 和 ASP MVC

javascript - 在下拉列表中选择值时使用 ajax 发布 MVC 值

asp.net-mvc - 将文件夹中的所有文件包含在一个包中

asp.net-mvc-4 - 如何扩展/自定义MVC4互联网应用程序WebSecurity/SimpleMembership

c# - 数据验证 ASP MVC OnActionExecuting

c# - Nlog 发布到 CosmosDB 目标

c# - MVC - 给定路由名称,我可以获得默认操作名称和 Controller 名称吗?

razor - Razor MVC 4 RC中的空第一行