我有两个问题:
JSONResult与ActionResult有什么区别?
- 醇>
何时在MVC中使用JSONResult?
答案 0 :(得分:34)
ActionResult
是一个动作可以返回的抽象类。
Controller
中的帮助方法(例如Json()
,Content()
,View()
,...)返回继承ActionResult
的不同具体类,包括JsonResult
。
您应该将您的操作方法声明为返回ActionResult
,以便他们可以自由返回任何具体的结果类。
答案 1 :(得分:14)
如果要返回客户端使用的原始JSON数据(网页或移动客户端上的javascript),请使用JsonResult
。
如果您想要返回视图,重定向等以供浏览器处理,请使用ActionResult
。
答案 2 :(得分:4)
ActionResult
是抽象类。JsonResult
是ActionResult
的子类型。所以我们可以返回两种类型的json内容。
答案 3 :(得分:0)
根据ActionResult
的{{3}}:
ActionResult类封装操作方法的结果 用于代表操作执行框架级操作 方法
动作方法通过执行工作来响应用户输入 返回一个动作结果。动作结果表示一个命令 框架将代表action方法执行。该 ActionResult类是操作结果的基类
表示用于将JSON格式的内容发送到的类 响应。
答案 4 :(得分:0)
<强> JsonResult 强>
这个有点复杂,但仍然不是很复杂。它也有 硬编码了它的ContentType,但更复杂的是它 它使用硬编码的JavaScriptSerializer来序列化JSON 数据直接写入响应之前。
这篇文章可能会有所帮助 http://brendan.enrick.com/post/types-of-aspnet-mvc-3-action-results.aspx