views:

194

answers:

1

What would be a valid regex for a MVC route constraint passing a bool? For example, I have the below route:

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

Basically, I need to know what would be valid in place of the ??? in the above code example.

This way, the Action on the other end can use the bool type like:

public ActionResult RedirectUrl(int projectId, int dealerId, bool isGroup)

Thank you in advance for your input.

-Jessy Houle

+3  A: 
isGroup = @"^(true|false)$"

So...

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)$"
  }
);

Casing shouldn't matter, so True should be accepted, as well as falSE.

Also, I've put ^ and $ on the regex values so that they won't match, for instance blahtrueblah.

Dan Atkinson