나는 C1 또는 C2 인 경우 내가 문제로 실행 그러나 다음ASP.NET 라우팅 및 정규 표현식
route = new Route("{w1}-{c1}-{n1},{w2}-{c2}-{n2}", new ResultRouteHandler());
route.Constraints = new RouteValueDictionary();
route.Constraints.Add("c1", "(.*)|([-])");
route.Constraints.Add("c2", "(.*)|([-])");
RouteTable.Routes.Add(route);
같은 경로를 사용하도록 노력하고 있어요. 예를 들어 "a-b-c, d --- f"는 404를 반환합니다 ("a-b-c, d-e-f"는 잘 작동 함). 누구나 내가 뭘 잘못하고 있는지 알 수 있습니까? 미리 감사드립니다.
는 편집 :
나는이 문제에 대한 간단한 해결 방법을 발견
route = new Route("{w1}-{c1}-{n1},{w2}---{n2}", new MyRouteHandler());
RouteTable.Routes.Add(route);
route = new Route("{w1}-{c1}-{n1},{w2}-{c2}-{n2}", new MyRouteHandler());
RouteTable.Routes.Add(route);
(C2) 인 경우 "-"우리가 그렇지 않으면 두 번째로, 첫 번째 경로에 일치합니다.
그래, Regex가 구문 분석되는 방식 때문에 단일 경로로 규칙을 만들 수없는 것 같습니다. 나는 두 경로를 가지고이 문제를 해결했다. – niaher