【发布时间】:2014-09-28 11:28:09
【问题描述】:
我想使用 RegEx 在 ASP.Net MVC 4 中创建新路由。 当 url 在斜杠和单词之间包含一个字母时,我想重定向到特定的控制器和操作:
http://www.myurl.com/a/something/anotherthing/?mykeyword=.....
我目前的路线是:
routes.MapRoute(
"MyRoute",
"{*something}",
new { controller = "mycontroller", action = "myaction" },
new { theregex = @".*/a/.*?mykeyword=.*" });
但我从不进入 mycontroller/myaction。我总是重定向到默认路由。
谁能告诉我正则表达式有什么问题?
谢谢!
【问题讨论】:
-
您是否先于其他路线绘制了这条路线?有优先顺序,这种路线必须排在其他路线之前。
-
您已经对路由参数
theregex设置了约束,但您的实际路由参数是something。这只是编辑代码以供公众使用的错误吗? -
另外,您不能匹配路由中的查询字符串,因为它没有被考虑用于路由目的。
-
确实,我完全忘记了查询字符串没有用于路由。
标签: regex asp.net-mvc asp.net-mvc-4