Я использую аннотации данных для своей формы, где пользователи могут зарегистрировать свой аккаунт.Для поля электронной почты у меня есть одна аннотация данных для обязательной и одна для действительного электронного письма.Здесь вы можете видеть, что в моей viewmodel:
[Required(ErrorMessage = "The Email field is required.")]
[EmailAddress(ErrorMessage = "The Email field is not a valid e-mail address.")]
public string Email { get; set; }
На мой взгляд, у меня есть следующий код:
<form asp-controller="Home" asp-action="RegisterAsync" method="post" class="register-form">
<br />
<img src="~/images/logo.png" width="300" />
<br />
<br />
<div class="text-danger">
@ViewBag.FailedToRegister
</div>
<div class="form-group">
<input asp-for="Name" placeholder=@Localizer["Name"] class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<input asp-for="Email" placeholder="Email" class="form-control" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
// Removed code for brevity
Теперь, когда я запускаю свое приложение и оставляю поле электронной почты пустым, я получаюхорошее сообщение об ошибке, как показано ниже.
Но когда я заполняю что-то, что не является действительным адресом электронной почты, я не получаю ту же ошибкутекст как выше, но я получаю следующее.
(Извините за голландское сообщение, это означает: требуется действительный адрес электронной почты.)
Но почему я не получаю сообщение, которое я запрограммировал в моей ViewModel и как я могу это исправить?
Я также пытался изменить
[EmailAddress(ErrorMessage = "The Email field is not a valid e-mail address.")]
в моей модели представления на
[DataType(DataType.EmailAddress, ErrorMessage = "The Email field is not a valid e-mail address.")]
, но без везения.