【发布时间】:2018-06-21 00:34:48
【问题描述】:
我的页面上有这段代码:
polyData = [1.2, 1.3, 1.4];
document.getElementById('sentDiv').innerHTML = JSON.stringify(polyData);
$.post('/Home/updateData', $.param({
data: JSON.stringify(polyData)
}, true), function(data) {
$("#dataDiv").html("this is data: " + JSON.stringify(data));
});
这是在我的控制器中:
[HttpPost]
public JsonResult updateData(List<double> polyData)
{
return Json(polyData);
}
当我进行 AJAX 调用时,我在控制器中的 updateData 被调用,但 polydata 是 null 并且没有数据通过 AJAX 调用传递给它。我可以在网页(sentData div)上看到polyData 具有有效值。为什么数据没有正确传递?
如何查看控制器接收到的 JSON 消息是什么以及控制器如何尝试将它们提取到 polyData 并调试进程?
【问题讨论】:
-
将
data:更改为polyData: -
@RoryMcCrossan 真的吗?我原以为应该是
data: polyData? -
您可能需要添加
[FromBody],如public JsonResult updateData([FromBody] List<double> polyData) -
@DavidG 那是我的下一行查询 :) 虽然没有收到数据是因为 OP 正在发送名为
data的参数,但该操作正在等待polyData -
@RoryMcCrossan 它有帮助。请把它作为一个答案,我会接受它。我将控制器中的变量名称更改为数据,现在它已被填充。
标签: jquery ajax asp.net-mvc asp.net-mvc-4