net mvc espaƱol data async asp asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-5 jsonresult

asp.net mvc - mvc - Actionresult vs JSONresult



return json data to view mvc (5)

JsonResult

Este es un poco más complejo, pero aún no es muy. También ha codificado su ContentType, pero lo que lo hace un poco más complejo es que utiliza un JavaScriptSerializer codificado para serializar los datos JSON antes de escribirlos directamente en la respuesta.

esta publicación puede ser útil
http://brendan.enrick.com/post/types-of-aspnet-mvc-3-action-results.aspx

Tengo 2 preguntas:

  1. ¿Cuál es la diferencia entre JSONResult y ActionResult?

  2. Cuándo usar JSONResult en MVC?


De acuerdo con la documentación de MSDN para ActionResult :

La clase ActionResult Encapsula el resultado de un método de acción y se utiliza para realizar una operación a nivel de marco en nombre del método de acción.

Un método de acción responde a la entrada del usuario realizando un trabajo y devolviendo un resultado de acción. Un resultado de acción representa un comando que el marco realizará en nombre del método de acción. La clase ActionResult es la clase base para los resultados de acción

Y para JsonResult :

Representa una clase que se utiliza para enviar contenido con formato JSON a la respuesta.


Utilice JsonResult cuando desee devolver datos JSON sin procesar para ser consumidos por un cliente (javascript en una página web o un cliente móvil).

Use ActionResult si desea devolver una vista, redirigir etc. para que sea manejada por un navegador.


ActionResult es una clase abstracta . JsonResult es el subtipo de ActionResult . Entonces podemos devolver el contenido json en ambos tipos.


ActionResult es una clase abstracta que una acción puede devolver.

Los métodos auxiliares en Controller (por ejemplo, Json() , Content() , View() , ...) devuelven diferentes clases concretas que heredan ActionResult , incluido JsonResult .

Debe declarar que sus métodos de acción devuelven ActionResult , para que tengan la libertad de devolver cualquier clase de resultado concreta.