webmethod在代码未更改时不返回布尔值

时间:2014-04-23 18:15:05

标签: c# asp.net

我的代码今天在开发中停止了工作,但是在服务器上发布的版本上,它仍在运行。 这是我的代码:

 <WebMethod()> _
    Public Shared Function UserNameExists(ByVal email As String) As Boolean
        Return False
    End Function

<script type="text/javascript">
    function EmailExists() {
        var email = document.getElementById("txtMail").value;
        PageMethods.UserNameExists(email, EmailExistsCallback);
    }

    function EmailExistsCallback(result) {
        if (result == false) {
            emailError.style.visibility = 'hidden';
        }
        else {
            emailError.style.visibility = 'visible';
        }

    }
</script>  


    <asp:TextBox ID="txtMail" runat="server" MaxLength="300" CssClass="input2" Width="244px"></asp:TextBox>
    <asp:CustomValidator ID="cvmail" runat="server" ForeColor="Red" ControlToValidate="txtMail" ClientValidationFunction="EmailExists"></asp:CustomValidator>
<span style="visibility: hidden; color: Red; float: right" id="emailError">error.</span>

当我在Firefox F12中添加断点时,“结果”包含"\r\n<!DOCTYPE html PUBLIC...rm>\r\n</body>\r\n<html>"而不是“false”。在发布的版本中,它包含false。

1 个答案:

答案 0 :(得分:0)

确保您已注册了解如何处理WebMethod请求的相应处理程序。这应该在你的web.config中:

<system.web>
  <httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  </httpModules>
</system.web>

如果您已将其删除或导致其被覆盖,那么您的ASP.NET应用程序将不知道如何采取特殊步骤来运行Web方法。