Шаги для воспроизведения:
- Создайте новый проект MVC 5 с отдельными учетными записями пользователей.
- Посмотрите на
ErrorMessage
, указанный вRegisterViewModel
для свойстваConfirmPassword
. Это "пароль и пароль подтверждения не совпадают". - Создайте и запустите приложение и попробуйте зарегистрироваться с несогласованными паролями. Я поставлю сообщение об ошибке "Подтверждение пароля" и "Пароль" не совпадают ". Вместо того, что указано в модели.
Похоже, что пользовательское свойство ErrorMessage
в атрибуте Compare
не работает. Даже если я укажу ErrorMessage, валидация по-прежнему покажет какое-то сообщение по умолчанию.
Эта работа с System.Web.Mvc.CompareAttribute
, но теперь она устарела, и вместо этого вы должны использовать System.ComponentModel.DataAnnotations.CompareAttribute
, которая показывает эту проблему.
Я добавляю атрибут Compare
к свойству и задаю ErrorMessage
следующим образом:
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match. I'll even add some random text!")]
public string ConfirmPassword { get; set; }
ожидаемый результат будет (, но это не то, что я получаю):
Вместо этого я получаю сообщение об ошибке "default":
Проверка на стороне клиента отключена. Я что-то упускаю? Этот пример берется из шаблона MVC 5 с отдельными учетными записями пользователей в качестве аутентификации.