質問
AJAX 呼び出し経由で ASP.NET MVC を使用して、シリアル化された JSON オブジェクトをクライアント側に返すにはどうすればよいですか?
解決
コントローラーからは JsonResult を返すだけです。
public ActionResult MyAction()
{
... // Populate myObject
return new JsonResult{ Data = myObject };
}
もちろん、Ajax 呼び出しの形式は、使用しているライブラリによって異なります。jQueryを使用すると次のようになります。
$.getJSON("/controllerName/MyAction", callbackFunction);
どこ callbackFunction
XHR リクエストからのデータであるパラメータを受け取ります。
他のヒント
構文設定に応じて、以下も機能します。
public ActionResult MyAction()
{
return Json(new {Data = myObject});
}
これは、MVC コントローラーで JsonResults を使用する方法を理解するための小さなコード ブロックです。
public JsonResult ASD()
{
string aaa = "Hi There is a sample Json";
return Json(aaa);
}
System.Web.Script.Serialization も実行できます。以下のように
using System.Web.Script.Serialization;
public ActionResult MyAction(string myParam)
{
return new JavaScriptSerializer().Serialize(myObject);
}
アヤックス
$.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) {
}
});
GET への応答として JSON を送信する必要がある場合は、JsonRequestBehavior.AllowGet を使用して動作を明示的に許可する必要があります。
public JsonResult Foo()
{
return Json("Secrets", JsonRequestBehavior.AllowGet);
}
所属していません StackOverflow