У меня есть следующее регулярное выражение как свойство ValidationExpression
в RegularExpressionValidator в веб-форме. Когда я вводил недопустимый символ в проверяемом элементе управления, валидатор обнаруживает его и показывает сообщение об ошибке.RegularExpressionValidator не обнаруживает пустые строки
<appSettings>
<add key="categoryPattern" value="^[a-zA-Z0-9_+\-() ]{1,50}$" />
</appSettings>
Моего валидатор:
<asp:RegularExpressionValidator ValidationExpression="<%$ AppSettings:categoryPattern %>"
Моя сторона сервер проверка:
Regex rex = new Regex(ConfigurationManager.AppSettings["categoryPattern"]);
if (!rex.Match(categoryName).Success)
{
throw new ArgumentException("CategoryName must match expression: " + rex);
Как вы можете видеть, точно такой же рисунок наносится на стороне клиента и на стороне сервера.
Однако, когда я очищаю проверенный элемент управления и отправляю пустую строку, валидатор считает, что все в порядке, и я получаю сообщение об ошибке на моей стороне. Кто-нибудь знает, что здесь не так, за исключением нарушенного контракта RegularExpressionValidator?
Благодаря @Mehrdad, я добавил RequiredFieldValidator, но проверка моего сервера не на странице, а в классе, используемом этой страницей, и потенциально другом коде, поэтому я держу это. – ProfK
Добро пожаловать. –