Почему не работает атрибут Compare?
Помогите разобраться, почему не работает тег. У меня есть класс регистрации:
public class RegisterViewModel
{
[Required]
[DataType(DataType.EmailAddress)]
[DisplayName("Email")]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
[DisplayName("Пароль")]
public string Password { get; set; }
[Required]
[Compare(nameof(Password), ErrorMessage = "Пароли не совпадают")]
[DataType(DataType.Password)]
[DisplayName("Повторите пароль")]
public string PasswordCompare { get; set; }
}
В контроллере при регистрации вызывается этот метод:
[HttpPost]
public async Task<IActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var result = await model.Registration(_userManager, _signInManager);
foreach (var error in result.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
return View(ModelState);
}
}
return Redirect("/");
}
Сам метод Registration:
public static async Task<IdentityResult> Registration(this RegisterViewModel model, UserManager<UserViewModel> _userManager, SignInManager<UserViewModel> _signInManager)
{
UserViewModel user = new UserViewModel { Email = model.Email, UserName = model.Email };
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await _signInManager.SignInAsync(user, false);
}
return result;
}
Пробовал разными способа черех хелпер Html, потому что, как я понимаю, ошибка не отображается только на клиенте и необходимо вывести ее в представление, но как ни экспериментировал не получилось:
<form class="decor" method="post" asp-controller="Account" asp-action="Register">
<div class="form-left-decoration"></div>
<div class="form-right-decoration"></div>
<div class="circle"></div>
<div class="form-inner">
<div asp-validation-summary="ModelOnly"></div>
<h3 align="center">Регистрация</h3>
<input type="email" placeholder="Email" required asp-for="Email">
<input type="password" placeholder="Пароль" required asp-for="Password">
<div>
<input type="password" placeholder="Повторите пароль" required asp-for="PasswordCompare">
@Html.PasswordFor(x => x.PasswordCompare)
@Html.ValidationMessageFor(model => model.PasswordCompare)
</div>
<input type="submit" value="Регистрация">
</div>
</form>
Помогите, пожалуйста, разобраться где туплю