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:
¿Cuál es la diferencia entre JSONResult y ActionResult?
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.