web-dev-qa-db-ja.com

Actionresult vs JSONresult

2つの質問があります:

  1. JSONResultとActionResultの違いは何ですか?

  2. MVCでJSONResultを使用する場合

34
Sameer More

ActionResultは、アクションが返すことができる抽象クラスです。

Controllerのヘルパーメソッド(たとえば、Json()Content()View()、...)は、ActionResultJsonResultを含む)。

アクションメソッドはActionResultを返すように宣言する必要があります。そうすると、具体的な結果クラスを自由に返すことができます。

35
SLaks

クライアント(WebページまたはモバイルクライアントのJavaScript)で使用される生のJSONデータを返す場合は、JsonResultを使用します。

ビューを返す、リダイレクトなどをブラウザで処理する場合は、ActionResultを使用します。

15
Trevor Pilley

ActionResult抽象クラ​​ス .JsonResultActionResultのサブタイプです。したがって、両方のタイプのJSONコンテンツを返すことができます。

5
Mahara jothi

JsonResult

これはもう少し複雑ですが、まだそれほど複雑ではありません。また、ContentTypeをハードコーディングしていますが、少し複雑になっているのは、ハードコーディングされたJavaScriptSerializerを使用してJSONデータをシリアル化してから、応答に直接書き込むことです。

この投稿は役に立ちます
http://brendan.enrick.com/post/types-of-aspnet-mvc-3-action-results.aspx

1
Sirwan Afifi

MSDNドキュメント によると、ActionResult

ActionResultクラスは、アクションメソッドの結果をカプセル化し、アクションメソッドに代わってフレームワークレベルの操作を実行するために使用されます。

アクションメソッドは、作業を実行してアクション結果を返すことにより、ユーザー入力に応答します。アクション結果は、アクションメソッドに代わってフレームワークが実行するコマンドを表します。 ActionResultクラスはアクション結果の基本クラスです

そして JsonResult の場合:

JSON形式のコンテンツを応答に送信するために使用されるクラスを表します。

1
Andrew