1

MVC4のWEBAPIを使用してコントローラーを公開しています。

最初に、MVC4 WEBAPIプロジェクトを作成し、Webページを開かないようにプロジェクトを設定し、外部アプリがURL(WEB API)を呼び出すのを待ちます。VS2010のプロジェクトは、VS2010の開発サーバーではなくIIS7Expressから実行するように設定されています。これは問題なく動作します。ブラウザはファイルをダウンロードするように要求します。ブラウザは返されたデータ(RAW TEXT)をどう処理するかわからないので、これは私にとっては問題ありません。

次に、MVC4プロジェクトエリアにAREAを作成し、コントローラー(WEB APIタイプ)を追加しました。

次に、もう一度プロジェクトを実行し、ブラウザーでURL(WEB API)を入力しました。そしてそれは失敗します。

エド。

4

2 に答える 2

2

DefaultHttpControllerFactoryは、デフォルトではAreasでは機能しません。この機能を利用するには、カスタムHttpControllerFactoryを作成する必要があります。

これを行う方法については、エリアをサポートするHttpControllerFactoryを作成する方法の投稿を参照してください。

于 2012-03-26T20:02:31.763 に答える
1

WebApiコントローラーを異なる領域に配置することは可能ですが、ASP.NET MVC 4 RCは、これらのApiControllerをすべて同じ名前空間にあるかのように扱います。これは、適切なApiControllerの選択を担当するDefaultHttpControllerSelectorの制限です。

幸い、このクラスの独自の実装を注入できます。実際、私はすでにこの問題に遭遇し、「エリア対応」のHttpControllerSelectorを作成しました。この問題とその解決策についての私のブログ投稿はここにあります:

http://blogs.infosupport.com/asp-net-mvc-4-rc-getting-webapi-and-areas-to-play-nicely/

于 2012-07-15T20:21:45.773 に答える