我試圖用多個導航路徑從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>
但是,麪包屑總是爲最上面的一個產生。有什麼我失蹤了嗎?
對,但是如果你看到最後一個屬性'type =「ma」',它們實際上是不同的。我能夠解決它使用:'MvcSiteMapProvider.SiteMaps.GetSiteMap()。Clear(); MvcSiteMapProvider.SiteMaps.GetSiteMap()。BuildSiteMap();'這是我使用這個提供程序的第一個項目,所以我不熟悉這個緩存如何工作。 – Ganesh
你說得對,我錯過了。這與緩存沒有任何關係。你的配置是無效的,因爲你指定了一個類型和一個preservedRouteParameters =「type」,它有效地用當前請求中的值覆蓋第一個類型。這可能就是爲什麼你會看到緩存問題。 – NightOwl888
我已經更新了我的答案。我還更新了wiki,並且正在修復MvcSiteMapProvider,因此當您爲路由值和保留的路由參數指定相同的密鑰時,它會引發異常,因爲這永遠不會有用。 – NightOwl888