通过Web方法进行自定义验证

时间:2010-09-08 10:14:15

标签: c# javascript asp.net validation

为了验证登录字段(在注册表中)我使用customValidator

        <asp:CustomValidator id="uniqueLoginValidator" class="validator" runat="server" ControlToValidate="tbUserName" ErrorMessage="Login duplicate" ClientValidationFunction="LoginValidate"/>

对于验证登录,我需要使用wcf,因此决定使用web-methods

   <script type="text/javascript">
   function LoginValidate(oSrc, args) {
       var login = $(".loginField").val();
       PageMethods.ValidateLogin(login,OnRequestComplete, OnRequestError);
       return;
   }
   function OnRequestComplete(result, userContext, methodName) {
       return;
   }

   function OnRequestError(error, userContext, methodName) {
       if (error != null) {
           alert(error.get_message());
       }
  </script>

我的网络方法如:

   [WebMethod]
   public static bool ValidateLogin(string login)
   {
        //wcf consuming
        return res;
    }

为了成功验证,我应该在ClientValidationFunction上设置args,但是我只在callBack上获得结果验证。那么如何设置args进行验证工作呢。

1 个答案:

答案 0 :(得分:1)

问题在于行

PageMethods.ValidateLogin(login,OnRequestComplete, OnRequestError);

启动对页面方法的异步调用并立即返回:在调用完成之前它不会阻塞。

有关讨论和解决方案(新的验证程序控件),请参阅http://www.codeproject.com/KB/validation/Async_CustomValidator.aspx

相关问题