2010-01-13 30 views
6

Regex hợp lệ cho giới hạn tuyến đường MVC đi qua bool là gì? Ví dụ: tôi có tuyến đường bên dưới:Ràng buộc lộ trình MVC cho bool

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

Về cơ bản, tôi cần biết điều gì sẽ hợp lệ thay vì ??? trong ví dụ trên.

Bằng cách này, các hành động ở đầu bên kia có thể sử dụng các loại bool như:

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

Cảm ơn bạn trước cho đầu vào của bạn.

Trả lời

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

Vậy ...

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

Vỏ bọc không nên quan trọng, vì vậy True nên được chấp nhận, cũng như falSE.

Ngoài ra, tôi đã đặt ^$ vào giá trị regex để chúng không khớp, ví dụ: blahtrueblah.

+2

không nên là đại lýId = @ "^ \ d $ +", là dealerId = @ "^ \ d + $", chỉ cần chuyển đổi 2 ký tự cuối cùng – BlackTigerX

+0

@BlackTigerX: Vâng! Cảm ơn bạn đã chỉ ra điều đó! –

Các vấn đề liên quan