は私が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"は正常です)。誰でも私が間違っていることを知っている?前もって感謝します。 c2がある場合
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);
" - " 我々はそれ以外の場合は第二に、最初のルートに一致:
EDIT:
私はこの問題の簡単な回避策を見つけました。
はい、正規表現が解析される方法のため、単一のルートでルールを作成することはできないようです。私は2つのルートを持つことで問題を回避しました。 – niaher