6

Tôi có một lộ trình như sau:ASP.NET định tuyến với một KHÔNG bằng chế

routes.MapRoute 
    (
    "Profile", 
    "profile/{username}", 
    new { controller = "Profile", action = "Index" }, 
    new { username = @"^(getmoreactivity)" } 
    ); 

này làm việc tốt cho tất cả người dùng nhưng Tôi có một tình huống mà tôi muốn nhấn một hành động cho getmoreactivity. Vì vậy, tôi muốn thực hiện ràng buộc này để nói khi tên người dùng KHÔNG PHẢI là không có. Nó chỉ không hoạt động.

Tôi đã mắc kẹt trên RouteDebugger và đã thử @ "[^ (getmoreactivity)]" @ "^^ (getmoreactivity)" @ "^ getmoreactivity" @ "[^ getmoreactivity]". Tôi đã thử vô số thứ nhưng không ai giải quyết được vấn đề của tôi.

Làm thế nào địa ngục bạn đặt trong một ràng buộc NOT trên toàn bộ một từ?

Trả lời

16

thử:

routes.MapRoute 
( 
"Profile", 
"profile/{username}", 
new { controller = "Profile", action = "Index" }, 
new { username = "(?!getmoreactivity).*" } 
); 

?! là một lookahead: http://www.regular-expressions.info/refadv.html

......

+1

cũng thấy http://stackoverflow.com/questions/406230/regular-expression- to-match-line- mà-không-chứa-một-từ để biết thêm chi tiết –

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