JSON und ASP.NET MVC
-
01-07-2019 - |
Frage
Wie kehren Sie eine serialisierte JSON-Objekt auf der Client-Seite mit ASP.NET MVC über eine AJAX nennen?
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);
}