Actionresult vs JSONresult

时间:2013-03-06 15:09:29

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-5 jsonresult

我有两个问题:

  
      
  1. JSONResult与ActionResult有什么区别?

  2.   
  3. 何时在MVC中使用JSONResult?

  4.   

5 个答案:

答案 0 :(得分:34)

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

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

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

答案 1 :(得分:14)

如果要返回客户端使用的原始JSON数据(网页或移动客户端上的javascript),请使用JsonResult

如果您想要返回视图,重定向等以供浏览器处理,请使用ActionResult

答案 2 :(得分:4)

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

答案 3 :(得分:0)

根据ActionResult的{​​{3}}:

  

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

     

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

对于MSDN documentation

  

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

答案 4 :(得分:0)

  

<强> JsonResult

     

这个有点复杂,但仍然不是很复杂。它也有   硬编码了它的ContentType,但更复杂的是它   它使用硬编码的JavaScriptSerializer来序列化JSON   数据直接写入响应之前。

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