我试图使像下面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