Как проверить данные, которые не отправляются методом Post? - PullRequest
0 голосов
/ 04 июля 2019

У меня есть статический объект в контроллере, который будет заполнен на некотором уровне форм регистрации. Наконец, я хочу проверить этот объект с помощью метода modelstate, но это невозможно, потому что это не отправлено с помощью метода post. Я ищу стандарт способ проверки ..

public class AccountController : Controller
{
    private MyDb db = new MyDb();
    private static Trainer trainer = new Trainer();
    public Trainer InfoSave(Trainer info)
    {
        trainer.SchoolGrade = info.SchoolGrade;
        trainer.SchoolMajor = info.SchoolMajor;
        trainer.MajorId = info.Major.Id;
        trainer.History = info.History;
        trainer.Major = info.Major;
        if (ModelState.IsValid)
            return true;
        else
            return false;

}

1 Ответ

0 голосов
/ 05 июля 2019

Вы можете использовать стороннюю библиотеку для слабой привязки логики валидации. Я использую библиотеку FluentValidation. Вы можете использовать это:

using FluentValidation;

public class TrainerValidator : AbstractValidator<Trainer> {
  public TrainerValidator() {
    RuleFor(c=> c.Name).NotNull().WithMessage("Name is required");
  }
}

public class AccountController : Controller
{
    private MyDb db = new MyDb();
    private static Trainer trainer = new Trainer();
    public Trainer InfoSave(Trainer info)
    {
        trainer.SchoolGrade = info.SchoolGrade;
        trainer.SchoolMajor = info.SchoolMajor;
        trainer.MajorId = info.Major.Id;
        trainer.History = info.History;
        trainer.Major = info.Major;
        TrainerValidator validator = new TrainerValidator();
        ValidationResult result = validator.Validate(trainer);
        if (result.IsValid)
            return true;
        else
            return false;

}

Вы можете расширить его в соответствии с вашими требованиями. Вот ссылка для того же FluentValidation

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