3 回答
TA贡献1735条经验 获得超5个赞
data: { gridData: dataArray },
在java脚本中将匹配c#中的以下对象模型
public class GridDataObject {
public List<DateName> gridData { get; set; }
}
但是,这与中的参数参数不匹配
public virtual string Method(List<DateName> gridData)
因此,首先,更新控制器操作以期望从客户端发送所需的对象模型。
一个简单的例子在控制器中看起来像这样
[HttpPost]
public virtual string Method(GridDataObject data) {
//...
var gridData = data.gridData;
//...
return string.Empty; //strictly for demo purposes.
}
其次,客户端需要使用正确的格式发送数据。
//...
var url = GetUrlRoot() + "Controller/Method";
var data = { gridData: dataArray };
$.ajax({
url: url,
type: 'POST',
data: data,
async: false,
success: function () {
}
error: function () {
},
cache: false,
});
TA贡献2037条经验 获得超6个赞
使用dataType: "json"和traditional: true
$.ajax({
url: GetUrlRoot() + "Controller/Method",
data: dataArray,
async: false,
dataType: "json",
traditional: true,
success: function () {
},
error: function () {
},
cache: false,
})
TA贡献1860条经验 获得超9个赞
在您的 jQuery Ajax 部分:
将设置数据更改为:
data: JSON.stringify(dataArray),
method: 'POST', //or type:'POST' based on jQuery version
...
然后您还可以将控制器更改为:
public virtual string Method([FromBody]DateName[] gridData){
...
}
因此,通过这些更改,$.ajax 会将 JSON 发布到您的控制器,并且您的控制器将从请求正文中解析 JSON。
- 3 回答
- 0 关注
- 195 浏览
添加回答
举报