Frage

Wie kehren Sie eine serialisierte JSON-Objekt auf der Client-Seite mit ASP.NET MVC über eine AJAX nennen?

War es hilfreich?

Lösung

Von der Steuerung können Sie nur eine JsonResult zurück:

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

Die Form des Ajax-Aufruf wird davon abhängen, welche Bibliothek Sie verwenden, natürlich. jQuery wäre es so etwas wie:

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

, wo der callbackFunction einen Parameter annimmt, die die Daten von der XHR Anfrage sind.

Andere Tipps

Je nach Syntax Vorlieben funktioniert auch Folgendes:

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

Dies ist der kleine Codeblock für nur verstehen, wie wir JsonResults in MVC-Controller verwenden können.

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

Sie können auch System.Web.Script.Serialization; wie unten

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

    }
});

Wenn Sie JSON senden müssen als Antwort auf eine GET, werden Sie explizit das Verhalten zulassen müssen durch JsonRequestBehavior.AllowGet verwendet wird.

public JsonResult Foo()
{
    return Json("Secrets", JsonRequestBehavior.AllowGet);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top