Jquery 视图在mvc 3中不断向我的控制器返回null
我正在尝试从视图向控制器发送数据。我有一个相当复杂的对象,它包含一个数组和一个带值的对象。无论我尝试什么,它在我的控制器中都是空的。我已经用IE9s F12检查了数据,数据就在那里。我不明白我做错了什么 视图中的代码:Jquery 视图在mvc 3中不断向我的控制器返回null,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我正在尝试从视图向控制器发送数据。我有一个相当复杂的对象,它包含一个数组和一个带值的对象。无论我尝试什么,它在我的控制器中都是空的。我已经用IE9s F12检查了数据,数据就在那里。我不明白我做错了什么 视图中的代码: var deletedIds = []; $("#spara").click(function () { var changedInsertedData = $("#dagbok_grid").getChangedCells('all');
var deletedIds = [];
$("#spara").click(function () {
var changedInsertedData = $("#dagbok_grid").getChangedCells('all');
var theData = { changedInserted: changedInsertedData, deleted: deletedIds };
$.post('@Url.Action("SaveGridData")', JSON.stringify({ data: theData }), null, 'json');
})
控制员:
public void SaveGridData(DagbokGridDTO data)
{
System.Diagnostics.Debug.WriteLine(data.ToString());
}
模型/DTOs
public class DagbokGridRadDTO
{
public string Kronika { get; set; }
public string Region { get; set; }
public string id { get; set; }
}
public class DagbokGridDTO
{
public DagbokGridRadDTO[] changedInserted;
public string[] deleted;
}
来自IE9 F12模式的数据:
我认为它应该以这种方式工作,但在控制器中,data.changedinserred和data.deleted为null。我尝试了几种不同的方法,但没有任何帮助。能否尝试在控制器中接收FormCollection并进行检查。在控制器中以<代码>形式[“changedInserted”]读取数据
public void SaveGridData(FormCollection form)
而不是:
$.post('@Url.Action("SaveGridData")', JSON.stringify({ data: theData }), null, 'json');
使用:
请注意,$.ajax
方法如何允许您将请求内容类型头设置为application/json
,这就是您要发送的内容。$.post
方法不允许您设置此标题,模型绑定器无法理解您的请求
$.post('@Url.Action("SaveGridData")', JSON.stringify({ data: theData }), null, 'json');
$.ajax({
url: '@Url.Action("SaveGridData")',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ data: theData }),
success: function(result) {
}
});