2011-08-07 10 views
1

ASP .NETルーティングで問題が発生することがあります。私はこれがMicrosoftコードのバグかどうか、私が間違って使っているのかどうかは分かりません。ASP.NETルーティングの干渉の問題

このシナリオは基本的には次のとおりです。

私は追加したいカスタムルートがあります。さらに、私はASP .NET DynamicDataRouteを登録しています。カスタムルートを省略すると、すべてのASP .NET DynamicDataRouteがうまく動作します。私は前にこれを追加すると、私のDynamicDataRoute:DynamicDataによって生成

routes.Add(new Route("IgnoreDirectory/{*pathInfo}"), new StopRoutingHandler())); 

すべてDynamicHyperlinksはこの1つのように、間違ったルートURLで生成されますする必要があります

http://localhost/IgnoreDirectory/MyTable/List(と私まででした追加私のカスタムルート)

http://localhost/MyDynamicData/MyTable/List

我々は何ですかIRDは、私は完全に別のパスのための私のDynamicDataRouteを追加しているということです。

routes.Add(new DynamicDataRoute("MyDynamicData/{{table}}/{{action}}") 
       { 
        Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }), 
        Model = model 
       }); 

私DynamicDataルートがIgnoreDirectoryのベースURLを使用させるIgnoreDirectory用のルートを追加しているのはなぜ????

私はそれを理解できません。

答えて

1

ここで私は外に出ていますが、それは2つのことと関係していると思います。 RouteTableにルートが格納される順序は、アプリケーションがURLに一致させるためにfirst route it findsを使用する点で重要です。

私がここで起こっているのは、DynamicDataRouteがルートテーブルのDynamicDataRouteの前に挿入しているルートに自分自身を構築しているということです。

まず、DynamicDataRouteを追加した後にRoute addを移動してみてください。このことができます

希望...

+0

そうだね、助けるんだ!...しかしDynamicDataRouteが(完全に異なるパスにマップのルートに自分自身を構築して、なぜ私が理解していないことですIgnoreDirectory)....全く違うディレクトリのルートが妨害される理由を詳しく説明できますか? – Jeff

+1

DynamicDataRoutesの仕組みについての私の非常に限られた理解に基づいて(まったく間違っているとは限りませんが)、彼らはRouteTableでそれらの前に来るルートから自分自身を構築するということです。ルート(〜/)を基にしたい場合は、RouteTableの他のルートの前にする必要があります。 –