请参阅下面的AJAX代码:
function Save()
{
var checkBoxArray = $("input:checkbox:checked").map(function () {
return this.id
}).get();
var str = JSON.stringify(checkBoxArray);
var user = document.getElementById("ctl00_ContentPlaceHolder1_lstUsers");
$.ajax({
type: "POST",
url: "frmReview.aspx/AllocateReview",
data: '{strUser: "' + user.value + '", strCheckBoxes: ' + str + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess(),
async: false,
failure: function (response) {
alert('There was a problem allocating the reviews')
}
});
function OnSuccess() {
return function (response) {
alert("The reviews where allocated successfully");
}
}
}
以及下面的服务器端代码:
<System.Web.Services.WebMethod()> _
Public Shared Sub AllocateReview(ByVal strUser As String, ByVal strCheckBoxes As String)
msgbox("got here")
End Sub
我在消息框(服务器端)上放了一个断点。但是,没有达到。如果我不传递str(这是一个数组),即我在客户端和服务器端排除它,它就会到达。为什么数组没有传递给服务器?没有错误 - 好像没有任何反应。
答案 0 :(得分:1)
在jQuery $.ajax()
调用中,data
属性应为
{ foo: "bar", hello: "world" }
); 具有name
和value
属性
[ { name: "foo", value: "bar" },
{ name: "hello", value: "world" }]
您的代码正在构建一个JSON字符串,我认为不应该这样。