FluentValidation: как показать проверку на стороне клиента - PullRequest
0 голосов
/ 21 октября 2019

Я использую FluentValidation

public class AddressModel{
  public string Street{get; set;}
  public string City{get; set;}
  public string State{get; set;}
  public string Zip{get; set;}
  public string Country{get; set;}
}

public class PersonModel{
  public string FirstName {get; set;}
  public string LastName {get; set;}
  public string SSN {get; set;}
  public AddressModel Address{get; set;}
  public AddressModel MailingAddress{get; set;}
  public int Type {get; set;}
}

 public class AddressValidator : AbstractValidator<AddressModel>
{
  public AddressValidator()
  {
    RuleFor(p=>p.Street).NotEmpty().WithMessage("Street is required");
    RuleFor(p=>p.City).NotEmpty().WithMessage("City is required");
    RuleFor(p=>p.Country).NotEmpty().WithMessage("Country is required");
    RuleFor(p=>p.State).NotEmpty().WithMessage("State is required"); 
    RuleFor(p=>p.Zip).NotEmpty().WithMessage("Zip code is required")
  }
}

public class PersonValidator : AbstractValidator<PersonModel>
{
  public PersonValidator()
  {
    RuleFor(p=>p.FirstName).NotEmpty().WithMessage("First name is required");
    RuleFor(p=>p.LastName).NotEmpty().WithMessage("Last name is required");
    RuleFor(p=>p.Address).SetValidator(new AddressValidator());
    RuleFor(p=>p.SSN).NotEmpty().WithMessage("SSN is required").When(p=>p.Type ==1); 
  }
}

// Запуск

services.AddMvc()
        .SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
        .AddFluentValidation(fv =>
          {
             fv.RegisterValidatorsFromAssemblyContaining<Startup>();
          });

Когда я нажимаю Сохранить в пользовательском интерфейсе, я получу следующие обязательные поля: FirstName, LastName и Address. После того как я заполню все отмеченные обязательные поля и снова нажму кнопку Сохранить, я получу от сервера, что требуется MailingAddress и SSN (я выбрал тип = 1).

Что мне нужно сделать, чтобы у меня не было проверки дляЭлектронная почта? Можно ли сделать проверку SSN доступной на стороне клиента?

Спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...