我试图从Ajax代码调用一个方法,而我的ajax代码根本没有进入Method。 我的代码中可能出现什么问题?
C#方法:
[WebMethod]
public static bool UserNameExists(string sendData)
{
bool a;
a = DataCheck.CheckDBUser(sendData);
return a;
}
Ajax:
$('#Button2').click(function () {
var name = document.getElementById('<%= UserTxt.ClientID %>').value;
$.ajax({
type: 'POST',
url: 'Register.aspx/UserNameExists',
data: '{ }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
if (msg.d == true) {
$("#UserLb").text("User Name is OK!");
} else {
$("#UserLb").text("User Name NOT avliable!");
}
}
});
});
注意:当我使用alert();命令只是检查它是否正在运行 - 它没问题。
谢谢。
答案 0 :(得分:4)
您的方法期望您没有在ajax调用中传递参数。 这样做:
$('#Button2').click(function () {
var name = document.getElementById('<%= UserTxt.ClientID %>').value;
$.ajax({
type: 'POST',
url: 'Register.aspx/UserNameExists',
data: {sendData:name },
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
if (msg.d == true) {
$("#UserLb").text("User Name is OK!");
} else {
$("#UserLb").text("User Name NOT avliable!");
}
}
});
});
并删除data:'{}'
中的单引号,它应为data: {}
答案 1 :(得分:1)
您需要定义一些数据以发送给该功能。你也可以定义方法应该采用像这样的HttpPost:
[WebMethod]
[HttpPost]
public static bool UserNameExists(string sendData)
{
bool a;
a = DataCheck.CheckDBUser(sendData);
return a;
}
定义一些要发送给方法的数据:
$('#Button2').click(function () {
var name = document.getElementById('<%= UserTxt.ClientID %>').value;
$.ajax({
type: 'POST',
url: 'Register.aspx/UserNameExists',
data: {sendData: "Hello" },
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
if (msg.d == true) {
$("#UserLb").text("User Name is OK!");
} else {
$("#UserLb").text("User Name NOT avliable!");
}
}
});
});