2009-10-12 3 views
5

를 사용하여 슬래시 ... http://mydomain.com/Box/Categ1/Categ2/Categ3/.../CategN/id1,id2,id3,...,idN내가이 같은 URL을 사용할 필요가 정규식

가 그럼 난 새로운 경로 이런 식으로 만들려고

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

하지만 작동하지 않습니다. "/"(슬래시) 대신 char을 사용하면 잘 동작합니다. 슬래시를 사용할 수 있습니까? 정말이 URL을보고 싶습니다.

답변

11

Box 다음에 오는 모든 것에 데이터 변수를 설정하려면 catch-all 매개 변수를 사용하십시오.

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

정말 ... 고마워요! – Wellington

+0

문제 없습니다. 기본적으로 asp.net mvc 라우팅 엔진은 슬래시를 구분 기호로 사용하여 모든 것을 토큰으로 분리합니다 ... 그래서 정규 표현식에서 어떻게 작동하는지 잘 모르겠습니다 만) – womp

관련 문제