2009-10-12 13 views
5

muszę użyć adresu URL tak:Radzenie sobie z n ASP.NET Trasy ukośników przy użyciu regex

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

Potem próbował utworzyć nową trasę w ten sposób ...

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

Ale to po prostu nie działa. Jeśli użyję dowolnego znaku zamiast "/" (ukośniki), to działa dobrze. Czy można użyć ukośników? Naprawdę chciałbym zobaczyć taki adres URL.

Odpowiedz

11

Jeśli chcesz ustawić zmienną danych na wszystko, co przychodzi po Box, po prostu użyj parametru catch-all.

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

Naprawdę ... dzięki! – Wellington

+0

Bez problemu. Domyślnie silnik routingu mvc asp.net dzieli wszystko na tokeny używając slasha jako separatora ... więc nie jestem pewien jak to by działało w wyrażeniach regularnych, ale prawdopodobnie niezbyt dobrze;) – womp

Powiązane problemy