【发布时间】:2017-07-05 15:20:27
【问题描述】:
我在这里遇到了几个与此相关的问题,到目前为止,没有一个问题能解决我的特定问题。我正在使用 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 值在发送到服务器之前肯定填充了我想要的数据,并且操作被命中,但“数据”参数始终为空。我还尝试将 [FromBody] 属性放在参数上,但它没有改变它。无论我如何命名数据或是否将其字符串化,参数都是空的。
将数据类型更改为动态也没有帮助,它仍然为空。需要发送的数据在检查时也包含在请求正文中。
【问题讨论】:
-
您是否检查过请求中是否发送了数据?也就是说
gridData有值吗? -
我建议您使用 Fiddler 或任何类似的工具,并查看实际发送到服务器的内容
-
当我在浏览器工具中检查请求时,数据被编码并包含在请求正文中。
-
尝试向您的 gridData 添加一个额外的 JSON.stringify,这样您最终会得到 JSON.stringify({ data: JSON.stringify(gridData) })
标签: jquery ajax asp.net-core-mvc