2009-01-01 16 views
5

¿Hay una manera de configurar lo que se utiliza JSON serializador al volver JSON a través de la JsonResult en el controlador:serializador de control en la función JsonResult aka Json en ASP.Net MVC?

public ActionResult SomeJsonFunction() 
{ 
    var x = SomeModelCode.SomeModelFunction(); 
    return Json(x); 
} 

Parece que el defecto es el JavaScriptSerializer. Me encantaría poder utilizar DataContractJsonSerializer, pero no puedo encontrar ninguna documentación sobre cómo hacer esto.

Respuesta

5

Compruebe the source para ver cómo se implementa JsonResult. Derive de ActionResult con su implementación de DataContractJsonSerializer. En este momento no será fácil usar el método de ayuda Json(), pero podrías crear tu propio método de ayuda en un controlador de supertipo de capa. Su nuevo método de ayuda devolvería su nueva derivación de ActionResult.

+0

Eso es exactamente lo que terminé haciendo. Simplemente crea una instancia del JavascriptSerializer, y es bastante trivial escribir un DataContractJsonResult derivado de ActionResult. –

+0

¡Muchas gracias! Esto resolvió un problema que teníamos con las referencias circulares y los otros errores de JavaScriptSerializer. – Doug

Cuestiones relacionadas