2010-01-13 24 views
6

Bir boole geçen MVC yol kısıtlaması için geçerli bir normal ifade ne olurdu? Örneğin, aşağıda rota:MVC Boole için Yol Kısıtlaması

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

Temelde, yerine geçerli olacağını bilmek gerekir ??? Yukarıdaki kod örneğinde.

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

girişiniz için şimdiden teşekkürler:

Bu şekilde, diğer ucunda Eylem benzeri bool türü kullanabilirsiniz.

cevap

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

So ... Muhafaza önemli olmamalı

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

yüzden TruefalSE yanı sıra kabul edilmelidir. Eşleşmezlerse böylece

Ayrıca, örneğin blahtrueblah için, düzenli ifade değerlere ^ ve $ koyduk.

+2

dealerId olmamalıdır = @ "^ \ d $ +", dealerId = @ "^ \ d + $", sadece son 2 karakteri değiştir – BlackTigerX

+0

@ BlackTigerX: Evet! Bunu işaret ettiğin için teşekkürler! –