Пользовательская проверка через веб-метод - PullRequest
0 голосов
/ 08 сентября 2010

Для проверки поля логина (в форме регистрации) я использую customValidator

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

Для подтверждения входа мне нужно использовать wcf, поэтому решите использовать веб-методы

   <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, но я получаю проверку результата только в callBack. Так как я могу настроить аргументы для проверки работоспособности.

1 Ответ

1 голос
/ 08 сентября 2010

Проблема в том, что линия

PageMethods.ValidateLogin(login,OnRequestComplete, OnRequestError);

инициирует асинхронный вызов метода страницы и немедленно возвращается: он не блокируется до тех пор, пока этот вызов не завершится.

См. http://www.codeproject.com/KB/validation/Async_CustomValidator.aspx для обсуждения и решения (новый элемент управления валидатора).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...