我在这里遇到了几个与此相关的问题,到目前为止,他们都没有解决我的具体问题。我使用ajax将与DataGrid中所选行相关的数据发送到服务器上的操作。 JavaScript代码如下所示:
function addSelected() {
var grid = $("#optionsGrid").dxDataGrid("instance");
var gridData = grid.getSelectedRowsData();
$.ajax({
type: "POST",
url: "/api/Options/AddRange",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ data: gridData })
});
}
服务器上的操作(暂时):
[HttpPost("api/[controller]/[action]")]
public async Task<IActionResult> AddRange(string data)
{
return Ok();
}
我已经在浏览器中检查了它,并且gridData值在发送到服务器之前肯定填充了我想要的数据,并且操作被命中,但是数据&#39;参数始终为null。我也尝试将[FromBody]属性放在参数上,但它没有改变它。无论我将数据命名为什么,或者我是否对其进行字符串化,参数都为空。
将数据类型更改为动态也没有帮助,它仍为空。需要发送的数据也会在检查时包含在请求正文中。
答案 0 :(得分:3)
试试这种方式
function addSelected() {
var grid = $("#optionsGrid").dxDataGrid("instance");
var gridData = grid.getSelectedRowsData();
$.ajax({
type: "POST",
url: "/api/Options/AddRange?data=" + JSON.stringify(gridData),
contentType: "application/json; charset=utf-8"
});
}
答案 1 :(得分:0)
data
的参数名称在stringify中,您仍需要指定发送data
作为参数。切换如下:
function addSelected() {
var grid = $("#optionsGrid").dxDataGrid("instance");
var gridData = grid.getSelectedRowsData();
$.ajax({
type: "POST",
url: "/api/Options/AddRange",
contentType: "application/json; charset=utf-8",
data: { data: JSON.stringify(gridData) }
});
}