我想優化URL的外觀如下圖所示:增加了一個路線和行爲改變
http://localhost:3817/Affaire/SearchAffaires?OnlyFavorite=True
所以我增加了一個新的途徑:
routes.MapRoute(
"Search Affaire Only Favorite", // Route name
"{controller}/{action}/OnlyFavorite", // URL with parameters
new { controller = "Affaire", action = "SearchAffaires", OnlyFavorite = true } // Parameter defaults
);
現在的網址是更易於閱讀:
http://localhost:3817/Affaire/SearchAffaires/OnlyFavorite
但是發生了一個新問題:由於路由原因,我的頁面上的其他鏈接發生了更改!
實例位置:.../AFFAIRE/SearchAffaires標籤=巴克斯特& OnlyLabel =真& OnlyFavorite =真
之前,它是:???/ AFFAIRE/SearchAffaires標籤=巴克斯特& OnlyLabel = True
如您所見,變量OnlyFavorite已被添加到URL中。最後我發現了這種行爲的原因:路由系統熱衷於與路由進行匹配,以至於它將重用傳入URL中的段變量值。處理這種行爲的最好方法是防止它發生。強烈建議您 不依賴於此行爲,並且您爲URL模式中的所有段變量提供值。
這有點煩人,因爲我有很多變數!
有關該問題的任何解決方案?爲什麼這種行爲不會發生在單一路線(默認路線)?
感謝
因爲路線的順序應用,你沒有任何問題,他們出現在RouteCollection中。第二個(在這種情況下)永遠不可達。這不是一個解決方案。 – Bronzato
這是不正確的,因爲我已經測試和本地主機/ affaire/searchaffaires/onlyfavorite作品。 – Giedrius