我正在尝试使用AJAX和jQuery在我的视图和控制器之间传递数据。
//Creates Container for Default Table
var container = document.getElementById('example');
var userInput = new Handsontable(container, {
minCols: 10,
minRows: 5,
minSpareRows: 1,
rowHeaders: true,
colHeaders: [//Column Headers],
contextMenu: true
});
//Load the Button with the AJAX Command
$(document).ready(function () {
$("#send").click(function () {
$.ajax({
url: '@Url.Action("ProcessRequest","ControllerName")',
data: JSON.stringify({
Label1: userInput.getDataAtCol(1),
Label2: userInput.getDataAtCol(2),
Label3: userInput.getDataAtCol(3),
}),
dataType: 'json',
contentType: "application/json; charset=utf-8",
type: 'POST',
success: function (result) {
alert("Succes");
},
error: function (result) {
alert("Failure");
}
});
});
});
, 但是,当我检查我的服务器端代码(在C#中)时,它表示我的标签变量的值为null。
[HttpPost]
public JsonResult ProcessRequest(
string Label1,
string Label2,
string Label3)
{
var _Label1 = Label1;
var _Label2 = Label2;
var _Label3 = Label3;
string message = string.Format("Successful.");
return Json(new { Success = true, Message = message });
}
}
错误是否与数据'数据有关。在AJAX命令格式化,或我在某处有类型错误?任何帮助将不胜感激!
答案 0 :(得分:1)
原来我需要创建一个包含我的数据的单独变量并将其字符串化两次:一次作为独立调用,再次在ajax中作为JSON.stringify' {data:varaibleName}。出于某种原因,getDataAtCol()方法确实返回了数据,但结果必须在它们可以在AJAX中进行字符串化之前进行一次字符串化。感谢@David和@ZekeDroid的帮助,非常感谢!