Ограничение маршрута MVC для bool - PullRequest
6 голосов
/ 13 января 2010

Каким будет действительное регулярное выражение для ограничения маршрута MVC, передающего bool? Например, у меня есть маршрут ниже:

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

По сути, мне нужно знать, что будет действительно вместо ??? в приведенном выше примере кода.

Таким образом, Действие на другом конце может использовать тип bool, например:

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

Заранее благодарим вас за ваш вклад.

1 Ответ

17 голосов
/ 13 января 2010
isGroup = @"^(true|false)$"

Итак ...

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

Кожух не должен иметь значения, поэтому следует принять True, а также falSE.

Кроме того, я 'поместите ^ и $ в значения регулярного выражения, чтобы они не совпадали, например blahtrueblah.

...