6

J'ai une route comme ceci:routage ASP.NET avec un pas égal à la contrainte

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

Cela fonctionne bien pour tous les utilisateurs mais je une situation où je veux frapper une action pour getmoreactivity. Donc je veux faire cette contrainte pour dire quand le nom d'utilisateur n'est pas getmoreactivity. Cela ne fonctionne tout simplement pas.

Je suis resté sur le RouteDebugger et essayé @ "[^ (getmoreactivity)]" @ "^^ (getmoreactivity)" @ "^ getmoreactivité" @ "[^ getmoreactivity]". Eh bien j'ai essayé d'innombrables choses mais aucune ne résout mon problème.

Comment diable mettez-vous une contrainte NON sur un mot entier?

Répondre

16

essayer:

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

?! est un test avant: http://www.regular-expressions.info/refadv.html

......

+1

voir aussi http://stackoverflow.com/questions/406230/regular-expression- to-match-line-that-doesnt-contient-un-mot pour plus de détails –