嗨,这是我的javascript:
<script type="text/javascript">
$(document).ready(function () {
function validateEmail(email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if (!emailReg.test(email)) {
return false;
} else {
return true;
}
}
$("#coreContent_mainContent_txtEmail").blur(function () {
var email = $("#coreContent_mainContent_txtEmail").val();
if (!validateEmail(email)) {
$("#coreContent_mainContent_errorIconEmail").css("display", "block !important").fadeIn(200);
$("#coreContent_mainContent_txtEmail").css("-webkit-box-shadow", "0 0 0 1px #2D2D2D, 0 0 0 2px #FF0000 !important").fadeIn(200);
$("#coreContent_mainContent_txtEmail").val('');
} else {
$.ajax({
type: "POST",
url: "/Sign-Up.aspx/DoesUserExist",
data: "{'email': '" + email + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg == "false") {
alert("Email Does Not Exist!");
} else {
alert("Email Exist!");
$(this).css("display", "block !important").fadeIn(200);
$(this).css("-webkit-box-shadow", "0 0 0 1px #2D2D2D, 0 0 0 2px #FF0000 !important").fadeIn(200);
$(this).val = "";
}
}
});
}
});
});
</script>
现在在ajax帖子中它给了我这个错误'未知的网络方法DoesUserExist。 参数名称:methodName'然而在我的代码后面的同一页面上是Sign-Up.aspx,方法'DoesUserExist'实际上就在那里,这就是代码:
[WebMethod]
public static bool DoesUserExist(string email)
{
return false;
}
目前为了测试目的,我只在上述方法中返回false。然而问题仍然存在,ajax调用无法找到web方法。关于如何解决这个问题的任何想法?
答案 0 :(得分:3)
尝试添加[ScriptMethod] DoesUserExist:
[WebMethod]
[ScriptMethod]
public static bool DoesUserExist(string email)
{
return false;
}
答案 1 :(得分:0)
确保您的AJAX帖子中的URL正确,我不确定您的层次结构,但可能不需要前导斜杠。这里有一篇很好的文章来设置测试页面:http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
答案 2 :(得分:0)
我遇到了同样的问题。要修复它,你应该确保:
[WebMethod]
public static bool DoesUserExist(string email)
{
return false;
}
在jquery代码中,确保要传递给数据的参数选项应与参数方法名称匹配。它必须与您的方法签名相匹配。
数据:&#34; {&#39;电子邮件&#39;:&#39;&#34; +电子邮件+&#34;&#39;}&#34;,