我正在尝试将 JavaScript 变量的内容传递到服务器进行处理。我可以毫无问题地传递静态字符串,但是当我传递包含字符串的变量时,不会调用 WebMethod。这是我的代码: (客户端)
function expand(checkbox)
{
var selectedrow = checkbox.parentNode.parentNode;
var rowindex = selectedrow.rowIndex;
var parent = document.getElementById("parentTable");
var NextRow = parent.rows[rowindex + 1];
var cols = selectedrow.cells[1];
var ID = cols.firstElementChild.attributes.value;
$.ajax({
type: "post",
url: "Playground.aspx/childBind",
data: "{sendData: ID}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) { alert("successful!" + result.d); }
})
NextRow.style.visibility = "visible";
}
(服务器)
[WebMethod]
public static string childBind(string sendData)
{
return String.Format("Hello");
}
现在,如果我尝试 data: "{sendData: "ok"}",WebMethod 将被调用并返回响应。我的语法怎么错了?
最佳答案
您不必将其作为字符串传递。由于 ID
是一个 JavaScript 变量,因此您必须传递它的值。当您以 "{sendData: ID}"
形式传递数据时,它不会传递 ID
的值。
试试这个
data: { sendData: ID }
关于c# - jQuery.ajax "data"参数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7258933/