2010-01-13 11 views
6

Quale sarebbe un'espressione regolare valida per un vincolo del percorso MVC che passa un bool? Ad esempio, ho seguito il percorso:Vincolo percorso MVC per bool

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

Fondamentalmente, ho bisogno di sapere che cosa sarebbe valida al posto del ??? nell'esempio di codice precedente.

In questo modo, l'azione su l'altra estremità può usare il tipo bool come:

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

vi ringrazio in anticipo per il vostro input.

risposta

17
isGroup = @"^(true|false)$" 

Quindi ...

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

involucro non dovrebbe importare, quindi True dovrebbero essere accettati, così come falSE.

Inoltre, ho inserito ^ e $ sui valori di regex in modo che non corrispondano, ad esempio blahtrueblah.

+2

non dovrebbe dealerId = @ "^ \ d $ +", essere dealerId = @ "^ \ d + $", basta cambiare gli ultimi 2 caratteri – BlackTigerX

+0

@BlackTigerX: Sì! Grazie per averlo indicato! –

Problemi correlati