【问题标题】:webservice returning 500 asp.netwebservice 返回 500 asp.net
【发布时间】:2014-10-04 13:07:40
【问题描述】:

遇到了一个非常奇怪的问题。

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

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

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

网络服务适配器

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() 后

【问题讨论】:

  • 你能发布你的 Ajax 调用的代码吗?

标签: asp.net ajax web-services


【解决方案1】:

解决了这个问题。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 2011-03-08
    • 2014-04-01
    • 1970-01-01
    相关资源
    最近更新 更多