bool的MVC路由约束

Jes*_*ule 6 asp.net-mvc boolean routes constraints

传递bool的MVC路由约束的有效正则表达式是什么?例如,我有以下路线:

routes.MapRoute("MenuRouteWithExtension",
    "Menu.mvc/{action}/{projectId}/{dealerId}/{isGroup}",
     new { controller = "Menu", action = "RedirectUrl",
           projectId = "", dealerId = "", isGroup = "" }
     new { projectId = @"\d+", dealerId = @"\d+", isGroup = @"???" });
Run Code Online (Sandbox Code Playgroud)

基本上,我需要知道什么是有效的代替??? 在上面的代码示例中.

这样,另一端的Action可以使用bool类型:

public ActionResult RedirectUrl(int projectId, int dealerId, bool isGroup)
Run Code Online (Sandbox Code Playgroud)

提前感谢您的意见.

Dan*_*son 17

isGroup = @"^(true|false)$"
Run Code Online (Sandbox Code Playgroud)

所以...

routes.MapRoute(
  "MenuRouteWithExtension",
  "Menu.mvc/{action}/{projectId}/{dealerId}/{isGroup}",
  new
  {
    controller = "Menu",
    action = "RedirectUrl",
    projectId = "",
    dealerId = "",
    isGroup = "" //Possibly set this to 'true' or 'false'?
  },
  new
  {
    projectId = @"^\d+$",
    dealerId = @"^\d+$",
    isGroup = "^(true|false)$"
  }
);
Run Code Online (Sandbox Code Playgroud)

套管应该无关紧要,因此True应该被接受,以及falSE.

另外,我已经把正则表达式值放在一起^,$以便它们不匹配,例如blahtrueblah.

  • 不应该是dealerId = @"^\d $ +",是dealerId = @"^\d + $",只需切换最后2个字符 (2认同)