Я пытаюсь проверить бланк на стороне клиента Blazor. Очевидно, проверка Сравнения не работает правильно, или я делаю что-то не так.
<EditForm Model="@user" OnValidSubmit="@OnValidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="form-group row">
<label class="col-sm-2 col-form-label" for="email">Email</label>
<InputText Class="form-control col-sm-10" id="email" bind-value="@user.Email" />
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label" for="password">Password</label>
<InputText Class="form-control col-10" id="password" bind-value="@user.Password" />
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label" for="confirmPassword">Confirm Password</label>
<InputText Class="form-control col-10" id="confirmPassword" bind-value="@user.PasswordConfirm" />
</div>
<div class="row">
<div class="offset-2">
<button type="submit" class="btn btn-primary form-control">Register</button>
</div>
</div>
</EditForm>
@functions {
class RegisterModel
{
[Required, EmailAddress]
public string Email { get; set; }
[Required, MinLength(6)]
public string Password { get; set; }
[Compare(nameof(Password))]
public string PasswordConfirm { get; set; }
}
private RegisterModel user = new RegisterModel();
private void OnValidSubmit()
{
Console.WriteLine("Valid");
}
}
Вот что происходит:
1) Написать действительное письмо
2) Введите действительный пароль
3) Нажмите кнопку регистрации
Ожидается -> Ошибка проверки (поля пароля разные) и нет вызова OnValidSubmit
Действует -> Нет ошибки проверки, вызван OnValidSubmit.
Если я что-то напишу в ConfirmPassword (отличается от пароля), первый щелчок обнаруживает ошибку проверки, но второй сбрасывает ошибку и вызывает OnValidSubmit.