Сообщение об ошибке регулярного выражения

Используя RegularExpression(@"^\d{1,15}$")], я хочу, чтобы пользователь вводил цифры длиной до 15, которые возвращают сообщение об ошибке "Пожалуйста, введите до 15 цифр для номера контакта", если это неверно.

[Required(ErrorMessage = ("Please enter up to 15 digits for a contact number")), Display(Name = "Contact Number"), RegularExpression(@"^\d{1,15}$")]
public string ContactNumber { get; set; }

Если пользователь не выполняет этого, я остаюсь с сообщением об ошибке:

The field Contact Number must match the regular expression '^\d{1,15}$'.

вместо 'Please enter up to 15 digits for a contact number'... кто-нибудь знает почему? спасибо

Ответ 1

Вы назначили ErrorMessage на RequiredAttribute (который вам абсолютно не нужен в этом случае из-за регулярного выражения). Итак:

[Display(Name = "Contact Number")]
[RegularExpression(@"^\d{1,15}$", ErrorMessage = "Please enter up to 15 digits for a contact number")]
public string ContactNumber { get; set; }

Ответ 2

Вам нужно поместить ваше сообщение в атрибут RegularExpression, а не Required.

Вы добавили сообщение об ошибке в атрибут Required, что означает, что он будет отображаться, когда поле пуст.