Javascript MVC5控制器未接收JSON对象
我有一个控制器,其方法如下:Javascript MVC5控制器未接收JSON对象,javascript,json,ajax,asp.net-mvc,knockout.js,Javascript,Json,Ajax,Asp.net Mvc,Knockout.js,我有一个控制器,其方法如下: public JsonResult Save(List<BlogInfo> list) { return Json(new { Data = "" }, JsonRequestBehavior.AllowGet); } $.ajax({ url: "Home/Save", type: "post", contentType: "application/json", data: ko.mapping.toJSON(
public JsonResult Save(List<BlogInfo> list)
{
return Json(new { Data = "" }, JsonRequestBehavior.AllowGet);
}
$.ajax({
url: "Home/Save",
type: "post",
contentType: "application/json",
data: ko.mapping.toJSON(ViewModel),
success: function (response) {
alert(response.Status);
}
});
{"Data":[{"Id":1,"Title":"Sudoku Solver","Description":"Programmed Sudoku Solver","Tags":["programming","sudoku"]},{"Id":2,"Title":"Picnic","Description":"Went to millpoint","Tags":["picnic"]},{"Id":0,"Title":"Title","Description":"Description","Tags":[]}]}
我的问题是控制器的列表参数总是空的。我尝试将其更改为字符串而不是列表,但它也是空的
使用Fiddler,我可以看到JSON的传递过程如下:
public JsonResult Save(List<BlogInfo> list)
{
return Json(new { Data = "" }, JsonRequestBehavior.AllowGet);
}
$.ajax({
url: "Home/Save",
type: "post",
contentType: "application/json",
data: ko.mapping.toJSON(ViewModel),
success: function (response) {
alert(response.Status);
}
});
{"Data":[{"Id":1,"Title":"Sudoku Solver","Description":"Programmed Sudoku Solver","Tags":["programming","sudoku"]},{"Id":2,"Title":"Picnic","Description":"Went to millpoint","Tags":["picnic"]},{"Id":0,"Title":"Title","Description":"Description","Tags":[]}]}
您显示的JSON并不表示数组,因此您不可能期望将其绑定到服务器上的列表。要实现这一点,请确保从客户端发送对象数组:
data: ko.mapping.toJSON(ViewModel.Data);
这里我们使用表示数组的ViewModel.Data
属性,这样我们只发送所需的JSON:
[{"Id":1,"Title":"Sudoku Solver","Description":"Programmed Sudoku Solver","Tags":["programming","sudoku"]},{"Id":2,"Title":"Picnic","Description":"Went to millpoint","Tags":["picnic"]},{"Id":0,"Title":"Title","Description":"Description","Tags":[]}]
请发布如何查看您的
数据ko.mapping.toJSON(ViewModel)
生成了什么?这是我用Fiddler得到的:{“数据”:[{“Id”:1,“Title”:“数独解算器”,“Description”:“已编程数独解算器”,“Tags”:[“programming”,“Sudoku”]},{“Id”:2,“Title”:“野餐”,“Description”:“God to millpoint”,“Tags”:[“野餐”},{“Id”:0,“Title”:“Title”,“Description”:“Title”,“Description”:“,[]}