我試圖使像下面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);
路線但是我碰到一個問題,當C1或C2爲「 - 」。例如「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爲 「 - 」 我們比賽進行到第路線,否則在其次。
是的,似乎不可能創建一條單一路由的規則,由於解析正則表達式的方式。我有兩條路線解決了這個問題。 – niaher 2009-06-08 01:59:11