37

2 つの質問があります。

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

  2. MVC で JSONResult を使用するのはいつですか?

4

5 に答える 5

37

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

Controller(例: Json()、、、 ...)のヘルパー メソッドはContent()、を含む、 をView()継承するさまざまな具象クラスを返します。ActionResultJsonResult

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

于 2013-03-06T15:12:05.807 に答える
17

JsonResultクライアント (Web ページまたはモバイル クライアントの JavaScript) によって消費される未加工の JSON データを返したい場合に使用します。

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

于 2013-03-06T15:11:54.640 に答える
5

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

于 2015-10-14T10:44:17.877 に答える
1

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

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

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

JsonResult の場合:

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

于 2013-03-06T15:20:25.427 に答える
1

JsonResult

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

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

于 2013-03-08T10:24:00.503 に答える