Аннотации данных регулярных выражений, делающие состояние модели недопустимым ASP.NET Ядро

#c# #regex #asp.net-core #data-annotations #modelstate

#c# #регулярное выражение #asp.net-core #данные-аннотации #modelstate

Вопрос:

У меня есть простая аннотация данных регулярных выражений

 [RegularExpression(@"d{5}", ErrorMessage = "Zipcode must be exactly 5 digits")]
public string Zipcode
{
    get;set;
}
  

Когда значение почтового индекса равно «12345»

Модель.isValid возвращает false .

Ответ №1:

Попробуйте это, он используется для проверки почтового индекса. Почтовый индекс должен содержать 5 цифр и не должен быть 00000. [Регулярное выражение(@»^(?!00000)[0-9]{5,5}$», ErrorMessage = «Почтовый индекс должен содержать 5 цифр»)]

Комментарии:

1. Спасибо за ваш ответ. Я привел Zipcode в качестве примера. Мое требование заключается в том, что строка должна содержать 5 цифр. Регулярное выражение работает в консольном приложении с регулярным выражением.match однако на страницах razor модель недействительна с тем же регулярным выражением.

2. Попробуйте это [RegularExpression(@»^( d{5}) $», ErrorMessage = «Сообщение об ошибке»)] Обычно он используется в примечаниях к данным вместо этого напрямую.

3. Спасибо, что сработало. Все еще любопытно, почему исходное регулярное выражение работало в консольном приложении, но не при проверке модели.

4. Я думаю, это потому, что он использует разные пространства имен.

5. Ценю вашу помощь.