当代码没有返回布尔值时,webmethod没有返回';不要改变

本文关键字:返回 改变 代码 布尔值 webmethod | 更新日期: 2023-09-27 17:59:31

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

 <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中添加断点时,"result"包含"'r'n<!DOCTYPE html PUBLIC...rm>'r'n</body>'r'n<html>"而不是"false"。在发布的版本中,它包含false。

当代码没有返回布尔值时,webmethod没有返回';不要改变

确保您已经注册了知道如何处理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方法。