MVC3语言路由/常量覆盖?

时间:2011-06-09 16:30:43

标签: asp.net-mvc-3 routes custom-routes

鉴于定义了以下两条路线:

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" });

如何设置路线以适应这种情况?

感谢。

1 个答案:

答案 0 :(得分:0)

您放置路线的顺序会有所不同。

将更具体的路线放置在更通用的路线之上,可确保它们不会陷入更通用的版本。