37

我有两个问题:

  1. JSONResult 和 ActionResult 有什么区别?

  2. 什么时候在 MVC 中使用 JSONResult?

4

5 回答 5

37

ActionResult是一个动作可以返回的抽象类。

Controller(例如, Json(), Content(), ...)中的辅助方法View()返回继承的不同具体类ActionResult,包括JsonResult.

您应该将您的操作方法声明为返回ActionResult,以便它们可以自由地返回任何具体的结果类。

于 2013-03-06T15:12:05.807 回答
17

JsonResult当您想要返回原始 JSON 数据以供客户端(网页或移动客户端上的 JavaScript)使用时使用。

如果ActionResult您想返回视图、重定向等以由浏览器处理,请使用此选项。

于 2013-03-06T15:11:54.640 回答
5

ActionResult是一个抽象类JsonResult是 的子类型ActionResult。所以我们可以返回两种类型的 json 内容。

于 2015-10-14T10:44:17.877 回答
1

json结果

这个有点复杂,但仍然不是很复杂。它还对其 ContentType 进行了硬编码,但更复杂的是它使用硬编码的 JavaScriptSerializer 来序列化 JSON 数据,然后再将其直接写入响应。

这篇文章可能会有所帮助
http://brendan.enrick.com/post/types-of-aspnet-mvc-3-action-results.aspx

于 2013-03-08T10:24:00.503 回答
1

根据MSDNActionResult文档:

ActionResult 类封装了动作方法的结果,用于代表动作方法执行框架级操作。

动作方法通过执行工作并返回动作结果来响应用户输入。动作结果表示框架将代表动作方法执行的命令。ActionResult 类是动作结果的基类

对于JsonResult

表示用于将 JSON 格式的内容发送到响应的类。

于 2013-03-06T15:20:25.427 回答