[英]I am trying to post a JSON object to a ASP.NET MVC Controller but getting empty JSON
這是Javascript代碼
$("#JSONPost").click(function (e) { var jsonData = { name: "ramesh", mobile: "9xxxxxxxxx" }; $.post( "/Trace/JSONPostMethod", jsonData, function (data, status) { alert(status); }); }); });
public ActionResult JSONPostMethod(object data)
{
}
數據以{}
而不是{ name: "ramesh", mobile: "9xxxxxxxxx" }
知道如何獲得這個 JSON 嗎? 我不想創建模型類來獲取數據。
找到了解決辦法。 在控制器方法中執行此操作,
var resolveRequest = HttpContext.Request;
resolveRequest.InputStream.Seek(0, SeekOrigin.Begin);
string jsonString = new StreamReader(resolveRequest.InputStream).ReadToEnd();
您可以修改您的 Json 代碼並編寫一些不會令人困惑的內容,如下所示:
$("#JSONPost").click(function (e) { var jsonData= {}; jsonData.Name = "Ramesh"; jsonData.Mobile = "9xxxxxxxxx"; $.ajax( url: "/Trace/JSONPostMethod", data: JSON.stringify(jsonData), contentType: 'application/json', type: 'POST', success: function (data, status) { alert(status); }); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
在您的控制器中進行更正:
[HttpPost]
public JsonResult JSONPostMethod(object data)
{
// your logic here
return Json(data, JsonRequestBehavior.AllowGet);
}
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.