为什么我没有在 ASP.Net MVC 控制器中获取 AJAX 数据?
Why am I not getting the AJAX data in an ASP.Net MVC controller?
我的页面上有这段代码:
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 并调试进程?
问题是因为您的控制器中的操作需要一个名为 polyData
的参数,但您的 AJAX 请求正在发送 data
。您只需要更改您发送的值的名称:
$.param({
polyData: JSON.stringify(polyData)
}, true)
另请注意,您可能还需要 $.param
或 JSON.stringify
调用,但这取决于您的模型和模型活页夹的结构。
我的页面上有这段代码:
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 并调试进程?
问题是因为您的控制器中的操作需要一个名为 polyData
的参数,但您的 AJAX 请求正在发送 data
。您只需要更改您发送的值的名称:
$.param({
polyData: JSON.stringify(polyData)
}, true)
另请注意,您可能还需要 $.param
或 JSON.stringify
调用,但这取决于您的模型和模型活页夹的结构。