我正在使用 MVC3、C#4、Razor、MvcSiteMapProvider V4。
我正在尝试将我的 mvc.sitemap 文件中的 MvcSiteMapNodes 显式绑定到我的 global.asa 中的路由。但这似乎不起作用。毫无疑问,我遗漏了一些东西。
我在 global.asa 中的路线:
routes.MapRoute("Report", "Report/{ClientId}", new { controller = "Report", action = "Index", ClientId = UrlParameter.Optional });
routes.MapRoute("Report_Section", "Report/{ClientId}/Section/{ReportId}", new { controller = "Section", action = "FilterByReport", ReportId = UrlParameter.Optional });
我的 mvc.sitemap 的一部分:
<mvcSiteMapNode title="Reports" controller="Report" action="Index" preservedRouteParameters="ClientId" route="Report">
<mvcSiteMapNode title="Sections" route="Report_Section">
所以我的 2 个网址是:
举报途径:
Report/10
Reports_Sections 路线:
Report/10/Section/100
我在第二条路线上没有得到认可,因此相关页面上没有出现面包屑路径。我曾希望仅通过在 mvc.sitemap 中指定“路由”属性,mvcSiteMapProvider 就可以绑定两者。
想法。我哪里出错了?
非常感谢
编辑:
看来我需要在“mvc.sitemap”中指定“控制器”和“动作”,而“路由”本身是行不通的。
<mvcSiteMapNode title="Sections" controller="Section" action="FilterByReport" route="Report_Section" preservedRouteParameters="ClientId,ReportId">