当我将查询字符串传递给我的“详细信息”页面时,@Html.MvcSiteMap().SiteMapPath() 会查看我的 URL 中的最后一个参数,在 MVC 中是我传递的 ID,而不是页面姓名。它最终什么都没有显示。当它到达“详细信息”视图时,有没有办法以编程方式在我的控制器中设置 SiteMapPath()?
_Layout.cshtml:@Html.MvcSiteMap().SiteMapPath()
Mvc.站点地图:
<mvcSiteMapNode title="Search" controller="Vendor" action="Search" key="Vendor">
<mvcSiteMapNode title="Search Results" controller="Vendor" action="SearchResults" key="Search">
<mvcSiteMapNode title="Details" controller="Vendor" action="Details" key="Details"/>
</mvcSiteMapNode>
</mvcSiteMapNode>
注意:“搜索”和“搜索结果”页面完美运行。
/供应商/搜索工作。
/Vendor/SearchResults 有效。
/Vendor/Details/418 不起作用。
编辑:原来我需要的只是将preservedRouteParameters =“id”添加到我的mvcSiteMapNode,所以
<mvcSiteMapNode title="Details" controller="Vendor" action="Details" key="Details" preservedRouteParameters="id" />