Pregunta

¿Cómo devolver un serializa un objeto JSON para el lado del cliente usando ASP.NET MVC a través de una llamada AJAX?

¿Fue útil?

Solución

Desde el controlador sólo puede devolver un JsonResult:

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

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

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

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

Otros consejos

Dependiendo de su sintaxis de las preferencias, las siguientes obras:

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

Este es el Pequeño bloque de código sólo para entender , cómo podemos utilizar JsonResults en MVC Controladores.

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

También puede el Sistema.Web.Secuencia de comandos.La serialización;como a continuación

using System.Web.Script.Serialization;

public ActionResult MyAction(string myParam)
{

    return  new JavaScriptSerializer().Serialize(myObject);
}

Ajax

$.ajax({
    type: 'POST',
    url: '@Url.Action("MyAction","MyMethod")',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ "myParam": "your data" }),
    success: function(data)
    {
        console.log(data)
    },
    error: function (request, status, error) {

    }
});

Si necesita enviar JSON en respuesta a un GET, deberá permitir explícitamente el comportamiento mediante el JsonRequestBehavior.AllowGet.

public JsonResult Foo()
{
    return Json("Secrets", JsonRequestBehavior.AllowGet);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top