所以我已经映射了这条路线:
routes.MapRoute(
"Solutions",
"{lang}/Solutions/{controller}/{action}",
new { lang="en-US", controller = "WhatWeDo", action = "Index"}
);
当我去“
/en-GB/Solutions/SolutionA/Index/
路线很好,但是
/en-GB/Solutions/SolutionA/
根本不路由。但是,如果我取出lang参数,那么路径看起来像
routes.MapRoute(
"Solutions",
"Solutions/{controller}/{action}",
new { controller = "WhatWeDo", action = "Index"}
);
我去了
/Solutions/SolutionA/
路线很好。有任何想法吗?我不想一直为此路由指定默认操作。感谢。
答案 0 :(得分:2)
你在global.asax中定义路由的顺序是什么,这可能与问题有关但我最初的猜测是它与默认路由匹配
controller: en-GB
action: Solutions
id : SolutionA
您可以做的是在路线上设置某种正则表达式匹配,以将您的语言从“默认”路线中排除?有关使用正则表达式进行路由过滤http://www.iridescence.no/post/Defining-Routes-using-Regular-Expressions-in-ASPNET-MVC.aspx
的详细信息,请尝试使用此链接