webservice返回500 asp.net

时间:2014-08-11 16:14:12

标签: asp.net ajax web-services

有一个非常奇怪的问题。

我刚刚在我的网站上成功实现了一个简单的ajax验证(是的!)。我通过backcode将验证连接到每个文本框的OnFocusOut事件,它完美地运行。

当在同一页面上调用完全相同的方法并通过validate()方法传递相同的参数或在document.ready()上添加属性OnFocusOut时,会发生奇怪的错误。我一直保持500的状态。

我能够验证在使用validate()时未成功调用服务器端方法,但在触发OnFocusOut时运行。

WebServiceAdapter

function ValueChanged(target, validationDiv,valueType) {

targetControl = document.getElementById(validationDiv);

//添加了这个部分,因为我猜到了一个null导致它     var str =(target.value ==='')? “ “ : 目标价值;

switch (valueType) {
    case "email":
        webServiceAdapter.EmailExist(str);
    break;
case "screenName":
    webServiceAdapter.ValidScreenName(str);
    break;
case "changePassword":
    webServiceAdapter.PasswordCorrect(str);
    break;
}

添加OnFocusOut反码 - 工作

 txtEmail.Attributes.Add("onfocusout", "ValueChanged(this,'"+Email.ClientID+"','email')");

添加OnFocusOut jquery - 无法正常工作

$("#<%=txtEmail.ClientID%>").attr("onfocusout", "ValueChanged('<%=txtEmail.ClientID%>', '<%=Email.ClientID%>', 'email')");

通过validate()方法调用 - 不工作

 ValueChanged('<%=txtEmail.ClientID%>', '<%=Email.ClientID%>', 'email');

修改

我也收到此错误“发生错误:无效的Web服务调用,缺少参数值:'email'。”在调用validate()

之后

1 个答案:

答案 0 :(得分:0)

解决了这个问题。

真的很尴尬。这是一个“常识错误”。

ValueChanged()期望一个对象作为第一个参数 - 这就是后码使用“this”做的事情。对于来自validate()的调用,我使用的是ID。