2011-06-09 51 views
0

考慮以下兩種途徑:MVC3語言路由/常量覆蓋?定義

routes.MapRoute(name: "StateResultsCategory", url: "{state}/{category}/{searchTerm}", defaults: new { controller = "Results", action = "SearchStateCategory" }); 

routes.MapRoute(name: "FRStateResults", url: "fr/{state}/{searchTerm}", defaults: new { controller = "Results", action = "SearchStateFR" }); 

第一條路線被俘獲「FR」,並通過該關爲「FR」的錯誤動作。

我不想在第一個路由上設置約束,因爲我稍後可能會有其他語言特定的路由。即。

routes.MapRoute(name: "CHStateResults", url: "ch/{state}/{searchTerm}", defaults: new { controller = "Results", action = "SearchStateCH" }); 
routes.MapRoute(name: "SPStateResults", url: "sp/{state}/{searchTerm}", defaults: new { controller = "Results", action = "SearchStateSP" }); 

如何設置路線以適應此?

謝謝。

回答

0

您放置路線的順序有所不同。

將更具體的路線放置在更通用的路線上方,可確保它們不會陷入更通用的版本。

+0

非常感謝...現在有道理。 – ElHaix 2011-06-09 16:48:05