【发布时间】:2019-01-22 10:48:30
【问题描述】:
我一直在尝试将此数组 ajax 到我的控制器,但是当它到达时数据被设置为 null。
我的功能:
function saveChanges() {
var grid = $("#GridName").data("kendoGrid");
var gridData = grid.dataSource.data();
var dataArray = [];
for (var i = 0; i < gridData.length; i++) {
dataArray.push({Date: gridData[i].Date, Name: gridData[i].ProductName});
}
$.ajax({
url: GetUrlRoot() + "Controller/Method",
data: { gridData: dataArray },
async: false,
success: function () {
},
error: function () {
},
cache: false,
})
grid.saveChanges();
}
我的控制器:
public virtual string Method(List<DateName> gridData)
{
return string.Empty;
}
public class DateName
{
public DateTime Date { get; set; }
public string Name { get; set; }
}
控制器识别出 1 条记录已发送,但该记录的值为空。
Debug.write(dataArray) 返回:
[对象对象],[对象对象]
【问题讨论】:
-
该操作是 POST 还是 GET 操作?
-
操作是 GET。
-
这就是问题所在。将请求和控制器操作转换为 POST 并在请求正文中发送数据。
-
dataArray 在方法中仍然为空,我已将两者都设置为 POST。
-
版本有很大的不同,所以我不得不对我提供的答案进行一些更改。检查更新。
标签: c# asp.net ajax asp.net-mvc-5 controller