2009-10-12 16 views
5

necesito usar una URL como esta:Tratar Rutas ASP.NET con rayas verticales n usando expresiones regulares

http://mydomain.com/Box/Categ1/Categ2/Categ3/.../CategN/id1,id2,id3,...,idN

Luego trató de crear una nueva ruta de esta manera ...

routes.MapRoute(
    "Box", 
    "Box/{data}", 
    new { controller = "Box", action = "Index"}, 
    new { data = @"([a-zA-Z0-9-,]+/?)+" } 
); 

Pero simplemente no funciona. Si uso cualquier carácter en lugar de "/" (barras), funciona bien. ¿Es posible usar las barras? Realmente me gustaría ver la URL así.

Respuesta

11

Si desea establecer la variable de datos para todo lo que viene después de Box, simplemente use el parámetro catch-all.

routes.MapRoute(
    "Box", 
    "Box/{*data}", 
    new { controller = "Box", action = "Index"} 
); 
+0

Realmente ... Gracias hombre! – Wellington

+0

No hay problema. De forma predeterminada, el motor de enrutamiento asp.net mvc separa todo en tokens usando la barra como divisor ... así que no estoy seguro de cómo funcionaría en expresiones regulares, pero probablemente no sea así;) – womp

Cuestiones relacionadas