我正在尝试学习ASP.Net MVC,我想将JSON对象数组发布到服务器并将其发送回客户端。当我使用Postman时,一切都很好,但它并不适用于实际的网页。我认为问题是发布数组的jQuery代码或无法解析数组的ASP.Net代码。
这是我的控制器代码:
[System.Web.Mvc.HttpPost]
public ActionResult GetResult(List<Table> 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。
Here是我的csHTML文件的链接。
答案 0 :(得分:2)
您的JSON.stringify
电话中无需$.post
。让jQuery为你处理。
答案 1 :(得分:2)
尝试在请求中指定内容类型:
$.ajax({
url: "./GetResult",
type: "POST",
data: JSON.stringify(tableData),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, status) { alert(status); }
})
答案 2 :(得分:0)
$.post("./GetResult", {list:tableData},
function (data, status)
{
alert(status);
}
, "json");
Json从未传递过对象。
using Newtonsoft.Json;
[HttpPost]
Public ActionResult GetResult(string list)
{
var obj = JsonConvert.DeserializeObject<List<Table>>(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); }
})