6

que tienen una ruta de este modo:enrutamiento de ASP.NET con un NO igual a la restricción

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

Esto funciona bien para todos los usuarios, pero Tengo una situación donde quiero golpear a una acción por getmoreactivity. Entonces quiero hacer esta restricción para decir cuando el nombre de usuario NO es getmoreactivity. Sin embargo, no está funcionando.

Me he quedado en el RouteDebugger y he intentado @ "[^ (getmoreactivity)]" @ "^^ (getmoreactivity)" @ "^ getmoreactivity" @ "[^ getmoreactivity]". Bueno, he intentado innumerables cosas pero ninguna solucionó mi problema.

¿Cómo diablos pones una restricción NO en una palabra completa?

Respuesta

16

intento:

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

?! es una búsqueda hacia delante: http://www.regular-expressions.info/refadv.html

......

+1

ver también http://stackoverflow.com/questions/406230/regular-expression- to-match-line- that-doesnt-contain-a-word para más detalles –

Cuestiones relacionadas