Валидаторы продолжают работать, даже если плохой ввод - PullRequest
0 голосов
/ 31 октября 2011

Я строю проверку на стороне сервера с использованием регулярных выражений в следующем формате:

protected void valMessage_ServerValidate(object source, ServerValidateEventArgs args)
{
    regex = new Regex(@"^\d+$");

    if (regex.Match(args.Value).Success == true)
        args.IsValid = true;
    else
        args.IsValid = false;
}

Это связано с пользовательским валидатором.Проблема состоит в том, что даже когда это терпит неудачу (то есть когда args.IsValid = false;), страница все еще продолжает нормально работать.Разве он не должен остановиться, как только найдет элемент управления с IsValid = false?Почему мой код выполняет код?

Ответы [ 3 ]

1 голос
/ 31 октября 2011

Трудно сказать, не понимая, что вы подразумеваете под «страница продолжает работать». Предполагая, что у вас есть обработчик событий, реагирующий на нажатия на кнопку «отправить», вы должны проверить Page.IsValid внутри обработчика событий.

Еще одна ошибка, которую я часто делаю, - это забытие установить группу ValidationGroup как на кнопку, так и на все мои валидаторы.

0 голосов
/ 31 октября 2011

На самом деле не эксперт в ASP.Net .... вам нужно пройти проверку валидации один раз, и почти все проверки выполняются там же ...

RequiredField Validator
Compare Validator
RegularExpression Validator
Range Validator
Custom Validator
Validation Summary

Вы можете получить краткое описание здесь или здесь . Надеюсь, это поможет.

0 голосов
/ 31 октября 2011

1.Проверить событие Page_Load с помощью Page.IsValid (). 2.Вы можете запустить проверку с помощью Page.Validate (). Ваша серверная сторона запускается? 3. Если ответ на шаге 2 - нет, пожалуйста, подтвердите

  1. Свойство OnServerValidate пользовательского валидатора вы установили правильную функцию проверки сервера.
    1. Вы установили группу проверки corrent для Custom Validator.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...