在ASP.Net中解析JSON对象数组
我正在尝试学习ASP.Net MVC,我想将JSON对象数组发布到服务器并将其发送回客户端。 当我使用Postman时 ,一切都很好,但它在实际的网页上不起作用。 我认为问题是发布数组的jQuery代码或无法解析数组的ASP.Net代码。
这是我的控制器代码:
[System.Web.Mvc.HttpPost] public ActionResult GetResult(List list) { return Json(list); }
这是我的对象声明:
public class Table { public int Id { get; set; } public String Question { get; set; } public int Answer { get; set; } }
这是发布数据的jQuery代码:
$.post("./GetResult", JSON.stringify(tableData), function (data, status) { alert(status); }, "json");
和tableData是一个JSON数组,如下所示:
[ { "Id": 500, "Question": "where are you from", "Answer": 2 }, { "Id": 501, "Question": "how old are you", "Answer": 1 }, { "Id": 502, "Question": "what is your first car", "Answer": 2 }, { "Id": 503, "Question": "do you have kids", "Answer": 1 } ]
此外,我可以看到我的代码通过post控制器,但它是空的或null。
这是我的csHTML文件的链接。
尝试在您的请求中指定内容类型:
$.ajax({ url: "./GetResult", type: "POST", data: JSON.stringify(tableData), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data, status) { alert(status); } })
您的$.post
调用中不需要JSON.stringify
。 让jQuery为您处理。
$.post("./GetResult", {list:tableData}, function (data, status) { alert(status); } , "json");
Json从未传递过对象。
using Newtonsoft.Json; [HttpPost] Public ActionResult GetResult(string list) { var obj = JsonConvert.DeserializeObject>(strStatus); return Json(list) }
要么
$.ajax({ url: "./GetResult", type: "POST", data: JSON.stringify(tableData), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data, status) { alert(status); } })