Это мои правила:
public class CambiarPasswordViewModelValidator : AbstractValidator<CambiarPasswordViewModel>
{
public CambiarPasswordViewModelValidator(
IStringLocalizer<CambiarPasswordViewModelValidator> localizer,
IStringLocalizer<SharedLocalizer> sharedLocalizer)
{
RuleFor(c => c.ContraseñaActual)
.NotEmpty().WithMessage(sharedLocalizer["Requerido *"]);
RuleFor(c => c.ContraseñaNueva)
.NotEmpty().WithMessage(sharedLocalizer["Requerido *"])
.Equal(c => c.ContraseñaConfirmacion)
.When(c => !string.IsNullOrWhiteSpace(c.ContraseñaNueva))
.WithMessage(localizer["Nueva Contraseña y Confirmación no concuerdan"]);
RuleFor(c => c.ContraseñaConfirmacion)
.NotEmpty().WithMessage(sharedLocalizer["Requerido *"]);
}
}
Моя проблема в том, что второе правило не работает должным образом.Мне нужно, чтобы ContraseñaNueva проверяла, когда пусто, а также когда значение не равно ContraseñaConfirmacion, однако, только пустая проверка вводится для ввода на странице бритвы.Если я изменяю порядок, проверка на равенство работает, а NotEmpty - нет.