2012-04-02 14 views
12

Recientemente encontré algunas muestras de código con Asp.Net Mvc2 que hace algunas llamadas ajax a acciones en el controlador que devuelve ContentResult.ContentResult vs JsonResult con ajax

Tuve algunos problemas al intentar convertir estas muestras en Mvc3 sin cambiar el tipo de acciones devueltas a JsonResult.

¿Alguien puede explicarme cuál es la diferencia entre ContentResult y JsonResult en el contexto de las llamadas ajax y en qué casos puedo usar una u otra en el contexto de las llamadas ajax? Encontré una buena publicación here que explica en detalle cada tipo de resultado pero no es suficiente para responder mi pregunta.

¿Hay problemas conocidos con las llamadas ContentResult y ajax en Mvc3?

Gracias.

Respuesta

6

Si el resultado que obtiene su código JavaScript es un contenido como HTML, debe devolver un resultado de contenido o un resultado de revisión parcial (si el formato de HTML está en una vista parcial).

Si el resultado es un objeto (especialmente uno que luego desea manipular), entonces debe ser un JsonResult.

Éstos son algunos buenos ejemplos de trabajo con JSON: http://geekswithblogs.net/michelotti/archive/2008/06/28/mvc-json---jsonresult-and-jquery.aspx

Buena suerte!

+0

Wow, gracias @Roy Dictus por la respuesta rápida. En mi caso, devuelvo una cadena xml que se utiliza para asignar directamente a la fuente de datos de un gráfico FusionChart. ¿Crees que en este caso, un JsonResult es mejor que un ContentResult? – Samuel

+0

Esto no es JSON y no es un objeto para ser manejado por JavaScript, así que esto sería contenido. –