多个导航路径单页(Multiple Navigation Paths to a Single Pag

2019-09-29 14:35发布

我试图从MvcSiteMapProvider使用多个导航路径的单个页面的功能: https://github.com/maartenba/MvcSiteMapProvider/wiki/Multiple-Navigation-Paths-to-a-Single-Page

而这些都是记录指向同一资源的2个不同的导航路径:

<mvcSiteMapNode title="Multi Analysis" controller="Report" action="MultiAnalysis" preservedRouteParameters="id">
<mvcSiteMapNode title="Analysis" controller="Report" action="Analysis" preservedRouteParameters="id,type" type="ma" />
</mvcSiteMapNode>

<mvcSiteMapNode title="Single Analysis" controller="Report" action="SingleAnalysis" preservedRouteParameters="id">
<mvcSiteMapNode title="Analysis" controller="Report" action="Analysis" preservedRouteParameters="id,type" type="sa" />
</mvcSiteMapNode>

但是,对于最上面的一个总是产生的痕迹。 有没有办法,我失去了一些东西?

Answer 1:

是的,有你失去了一些东西。 路线值和保存路线值不能对于相同的节点同时使用。 因为该示例配置也无效,我已经更新了维基页面。

<mvcSiteMapNode title="Multi Analysis" controller="Report" action="MultiAnalysis" preservedRouteParameters="id">
    <mvcSiteMapNode title="Analysis" controller="Report" action="Analysis" preservedRouteParameters="id" type="ma" />
</mvcSiteMapNode>

<mvcSiteMapNode title="Single Analysis" controller="Report" action="SingleAnalysis" preservedRouteParameters="id">
    <mvcSiteMapNode title="Analysis" controller="Report" action="Analysis" preservedRouteParameters="id" type="sa" />
</mvcSiteMapNode>

注意缺乏在这种情况下,preservedRouteParameters的“类型”。

使用preservedRouteParameters是用于迫使所有可能的ID通过复制从当前请求的参数相匹配的单个节点。 这通常仅用于制造的SiteMapPath HTML助手一起工作,你正在使用的数据库记录的列表或表作为主导航CRUD操作非常有用。 不建议如果您正在使用菜单或网站地图HTML助手或者你想在/sitemap.xml端点(站点地图XML的搜索引擎)中列出的网页,使用preservedRouteParameters。

我创建了这个功能的工作演示在我的博客: http://www.shiningtreasures.com/post/2013/08/10/mvcsitemapprovider-4-seo-features#canonical-tag



Answer 2:

这个工作对现在:

MvcSiteMapProvider.SiteMaps.GetSiteMap().Clear(); MvcSiteMapProvider.SiteMaps.GetSiteMap().BuildSiteMap();

我想,直到我弄清楚缓存是如何工作的MvcSiteMapProvider我会继续使用该



文章来源: Multiple Navigation Paths to a Single Page