为什么不';t此路由到默认操作
本文关键字:路由 默认 操作 为什么不 | 更新日期: 2023-09-27 18:20:07
所以我映射了这个路线:
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/
它的路线很好。有什么想法吗?我不想一直为这个路由指定默认操作。谢谢
您在global.asax中定义路由的顺序是什么,这可能与问题有关,但我最初猜测它与等默认路由匹配
controller: en-GB
action: Solutions
id : SolutionA
您可以在路由上设置某种正则表达式匹配,以将您的语言从"默认"路由中排除?有关使用regex进行路由筛选的详细信息,请尝试此链接http://www.iridescence.no/post/Defining-Routes-using-Regular-Expressions-in-ASPNET-MVC.aspx