6

我有一個路線,像這樣:ASP.NET路由具有不等於約束

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

這爲所有用戶我有,我想打的getmoreactivity動作的情況下正常工作。所以我想讓這個約束來說明何時用戶名不是getmore活動。這只是不工作。

我一直堅持RouteDebugger,並試圖@「[^(getmoreactivity)]」@「^^(getmoreactivity)」@「^ getmoreactivity」@「[^ getmoreactivity]」。那麼我已經嘗試了無數的事情,但沒有解決我的問題。

你到底是怎麼把整個單詞放在一個NOT約束下的?

回答

16

嘗試:

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

?!是一個超前:http://www.regular-expressions.info/refadv.html

......

+1

也看到http://stackoverflow.com/questions/406230/regular-expression-以便找到更多細節的匹配行,不包含單詞 – 2015-09-28 01:16:27