1. ホーム
  2. json

[解決済み] ASP.NETでWebAPIやMVCを使ってJSONを返す。

2022-06-01 10:40:07

質問

私は、クライアントスクリプトを多用するASP.NET MVCアプリケーションを構築しています。

私の理解では、どちらも Web APIコントローラ MVCコントローラ はJSONを返すことができます。

私のシナリオを考えると、私は Web APIコントローラ または MVCコントローラ ?

どのように解決するのですか?

Web API コントローラーは、MVC アプリケーションだけでなく、任意の ASP.NET アプリケーションで作成およびホストすることができます。したがって、Web API を作成する明白な理由は、MVC フロントエンドがない場合です (たとえば、会社/組織によってホストされている古典的な RESTful Web サービスなど)。

MVCコントローラは一般的にMVCフレームワークに依存します。デフォルトのテンプレートやコミュニティや仲間によって行われたほとんどの作業を見ると、ほとんどすべてのMVCコントローラがビューを念頭に置いて実装されていることに気づくでしょう。

個人的には、View()で対応するつもりならMVCコントローラを使い、特定のViewに依存しないものはWebAPIを使うことにしています。

もちろん注意点はありますが、一般的に言って、MVCのモデルバインディングの振る舞いを必要とせず、サービスがデータ中心で、操作がデータ中心(例えばCRUD操作)であれば、「モデル-ビューコントローラ」ではなく「Web APIコントローラ」を使うのがよいでしょう。逆に、あなたの操作がビュー中心である場合(例えば、ユーザーにユーザー管理ページを配信する)、またはMVCのモデルバインディングが「ajaxパーシャル」を生成する必要がある場合(非常にまれ)、代わりにMVCコントローラが必要になります。

個人的には、JSONベースのRESTfulクライアントを駆動するためにWeb APIコントローラを使用し、基本的なブラウザのルーティングとSPAの配信を処理するためにMVCコントローラを使用しています。