【问题标题】:ASP.Net MVC - MapRoute - RegExASP.Net MVC - MapRoute - 正则表达式
【发布时间】: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


【解决方案1】:

你可以试试:

https?:\/\/[^\/]*\/a\/[^?]*\?mykeyword=

DEMO


在程序中使用的字符串字面量:

@"https?:\/\/[^\/]*\/a\/[^?]*\?mykeyword="

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2019-02-10
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    相关资源
    最近更新 更多