Domanda

Come si fa a restituire un serializzato oggetto JSON per il lato client che utilizza ASP.NET MVC tramite una chiamata AJAX?

È stato utile?

Soluzione

Il controller è possibile restituire solo una JsonResult:

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

La forma della chiamata Ajax dipenderà la libreria che stai usando, naturalmente.Utilizzando jQuery sarebbe qualcosa di simile:

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

dove il callbackFunction prende un parametro che i dati da XHR richiesta.

Altri suggerimenti

A seconda della sintassi preferenze, anche i seguenti opere:

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

Questo è il Piccolo blocco di codice per capire come possiamo utilizzare JsonResults in MVC Controller.

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

È inoltre possibile del Sistema.Web.Script.La serializzazione;come di seguito

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) {

    }
});

Se avete bisogno di inviare JSON in risposta a OTTENERE, è necessario consentire esplicitamente il comportamento utilizzando JsonRequestBehavior.AllowGet.

public JsonResult Foo()
{
    return Json("Secrets", JsonRequestBehavior.AllowGet);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top