2017-08-03 94 views
1

我有一個分佈式mvc asp.net web應用程序。應用程序的用戶界面分散在不同的組件中,並且每個組件具有不同的主機值,這意味着應用程序針對用戶界面的不同部分具有不同的URL。有一個XML站點地圖文件在不同的組件之間共享。站點地圖中的節點使用相對URL和屬性來指示應使用哪個主機值,並將主機值存儲在配置文件中 - 這是因爲該應用程序存在於幾個不同的環境中,並且像這樣硬編碼網站地圖不實用。MvcSiteMapProvider - 修改節點url

考慮到所有這些,當在某個導航鏈接中呈現站點地圖節點時,我必須修改節點的URL以使其使用正確的主機完全限定。我可以通過.net SiteMapNode類輕鬆完成此操作。

我的問題是我需要做一些類似於MvcSiteMapProvider。到目前爲止我還沒有多少運氣。建議歡迎。

回答

0

我正在嘗試討論here的方法,即使用自定義ISiteMapNodeUrlResolver。

默認實現已將主機名替換爲xml站點地圖文件中可選提供的hostName屬性。在我的自定義實現中,我查找了基於hostName屬性的配置設置,以基於配置設置實現運行時修改。

到目前爲止,它似乎根據需要工作。