ASP.NET: написание собственного валидатора, работающего только на стороне сервера - PullRequest
2 голосов
/ 29 октября 2009

Я хочу написать собственный валидатор, который ничего не делает, пока пользователь не отправит сообщение назад (т. Е. Для него не будет сгенерирован JavaScript). Валидатор должен убедиться, что есть аргумент POST с именем hello. Значение этого аргумента должно быть целой строкой через запятую.

Причина, по которой я хочу сделать этот фактический валидатор, заключается в том, что я хочу интегрировать сообщение об ошибке в используемую сводку валидации, в которой отображается маркированный список ошибок.

Так с чего мне начать?

Ответы [ 2 ]

2 голосов
/ 29 октября 2009

Сначала добавьте пользовательский элемент управления валидатором на страницу

<asp:CustomValidator ID="MyValidator" runat="server" ErrorMessage="My error message" 
    OnServerValidate="MyValidator_OnServerValidate" />

Затем в вашем коде добавьте метод MyValidator_OnServerValidate.

protected void MyValidator_OnServerValidate(object sender, ServerValidateEventArgs e)
{
      e.IsValid = false;

      // Validation logic goes here
      if(Request.Form["hello"] == null)
          return;

      ...

      // If we have made it this far, then everything is valid
      e.IsValid = true;
}
0 голосов
/ 03 августа 2010

Сводка проверки также работает с ошибками на стороне клиента. Таким образом, вам НЕ ДОЛЖНО отправлять сообщения, чтобы получить сводку проверки для отображения новой ошибки. Фактически, в качестве стратегии я бы порекомендовал использовать клиентский скрипт AS WELL в качестве серверной проверки, где это возможно. По крайней мере, при включении, проверка клиента может помочь уменьшить сетевое общение, ресурсы сервера и улучшить взаимодействие с пользователем.

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