1

「完全修飾」ルートが必要なときに生成されない状況に陥っています。次のコードは、この問題を示しています。

        var junk = Url.Action("Index2", "Reference", new { area = "Admin" });
        junk = Url.Action("Index", "Reference", new { area = "Admin", memberID = 47 });

Url.Action() を最初に呼び出すと、/Admin/Reference/Index2が生成されます。2 番目の呼び出しでは/Admin/Referenceが生成されます。これは、"Index" が既定の識別子であるためだと思います。

残念ながら、ルート マッピング (VS2010 で生成されたので変更していません) はもちろん、2 番目のルートをルート領域の Admin コントローラーの Reference メソッドの呼び出しとして処理します。ルート リゾルバが、2 番目のリンクが本当に管理領域の参照コントローラのインデックス ハンドラを対象としていることを認識できる方法はありません。

明らかな回避策の 1 つは、領域内のコントローラーに Index メソッドを持たないことです。しかし、それは醜いようです。より良い/より堅牢なアプローチに興味があります。

4

1 に答える 1

1

いいよ気にしないで。問題は、間違った領域名と、GET に応答できるようにする必要があるメソッドの HttpPost 属性の組み合わせであることが判明しました。無視してください

于 2011-04-07T03:11:41.803 に答える