0

私は Web アプリ A を持っています。このアプリにはアプリ B でもある仮想ディレクトリがあります。A に MVC ルートを作成しようとしましたが、URL は仮想ディレクトリにあるように見えますが、A によって処理され、 Bではありません。しかし、無視されているようです。仮想ディレクトリよりも MVC ルートを優先させる方法はありますか?

4

2 に答える 2

1

アプリ A でアプリ B をオーバーライドする場合は、MVC ルーティング ロジックではなく、いくつかのURL 書き換え構成を追加する必要があります。アプリ A の構成ファイルです。IIS は、要求を転送するアプリケーションを認識している必要があります。MVC ルーティングが呼び出されるまでに、アプリケーションはその時点で既に選択されています (実際のアプリケーションが呼び出されると、B の選択を解除することはできません* )。また、アプリ B で URL 書き換えルールを設定してアプリ A を指すようにすることもできるかもしれませんが、それがどのように機能するかはよくわかりません。

アプリケーションの呼び出しについて私が言っていることは、厳密には正しくない可能性が非常に高いことに注意してください。しかし正直なところ、URL 書き換えリクエストのライフサイクルを完全に正確に説明できるかどうかはわかりません。単純化された用語で何が起こるかを大まかに概算していることを願っています。IIS および IIS7 要求ライフサイクルでの URL 書き換えの詳細については、次のリンクを参照してください。

http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module http://msdn.microsoft.com/en-us/library/bb470252(v=vs .100).aspx

于 2012-11-15T02:34:58.927 に答える
0

つまり、A と B の 2 つのアプリがあります。MVC ルートを作成しようとしたとのことですが、どのアプリで作成したのでしょうか? 達成しようとしていることをもう少し説明できれば、答えやすくなります。

ASP.net ルート (Web フォームでも利用可能) は、任意の形式を取ることができます。ルートマップが貪欲であることを覚えておく必要があります。したがって、最も一般的なルートが最初に見つかった場合、それ以降は何があってもチェックされません。したがって、順序は最も具体的で、最後の順序が最も一般的である必要があります。

この投稿を確認してくださいhttp://yogiorchard.azurewebsites.net/archiving-items-and-a-routing-lesson

お役に立てれば

于 2012-11-14T23:32:43.907 に答える