2008-09-19 31 views
14

¿Cómo devuelve un objeto JSON en serie al lado del cliente utilizando ASP.NET MVC a través de una llamada AJAX?JSON y ASP.NET MVC

Respuesta

22

Desde el controlador sólo se puede devolver un JsonResult:

public ActionResult MyAction() 
{ 
    ... // Populate myObject 
    return new JsonResult{ Data = myObject }; 
} 

La forma de la llamada Ajax dependerá de qué biblioteca que está utilizando, por supuesto. Usando jQuery sería algo así como:

$.getJSON("/controllerName/MyAction", callbackFunction); 

donde el callbackFunction toma un parámetro que es los datos de la solicitud XHR.

+0

¿Cómo pasaría los parámetros a MyAction? – Picflight

+0

Sin formato en un comentario, pero ... $ .getJSON ("/ controllerName/MyAction", {id: 7}, callbackFunction); – BenB

10

Dependiendo de sus preferencias de sintaxis, lo siguiente también funciona:

public ActionResult MyAction() 
{ 
    return Json(new {Data = myObject}); 
} 
0

Si necesita enviar JSON en respuesta a un GET, que necesita para permitir explícitamente el comportamiento mediante el uso de JsonRequestBehavior.AllowGet.

public JsonResult Foo() 
{ 
    return Json("Secrets", JsonRequestBehavior.AllowGet); 
} 
1

Este es el pequeño bloque de código para simplemente entender, cómo podemos usar JsonResults en controladores MVC.

public JsonResult ASD() 
    { 
    string aaa = "Hi There is a sample Json"; 
    return Json(aaa); 
    }