Как я могу получить доступ к ошибкам FluentValidation из метода api post? - PullRequest
0 голосов
/ 28 ноября 2018

В документах Fluent Validation Есть пример

    public class PeopleController : Controller {
    public ActionResult Create() {
        return View();
    }

    [HttpPost]
    public ActionResult Create(Person person) {

        if(! ModelState.IsValid) { // re-render the view when validation failed.

// Как мне получить здесь сообщения об ошибках Validator?

            return View("Create", person);
        }

        TempData["notice"] = "Person successfully created";
        return RedirectToAction("Index");

    }
}


public class Person {
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public int Age { get; set; }
}

ГдеВалидатор был установлен как

public class PersonValidator : AbstractValidator<Person> {
    public PersonValidator() {
        RuleFor(x => x.Id).NotNull();
        RuleFor(x => x.Name).Length(0, 10);
        RuleFor(x => x.Email).EmailAddress();
        RuleFor(x => x.Age).InclusiveBetween(18, 60);
    }
}

Предположим, что проверка не удалась.Как я могу получить доступ к ошибке проверки из метода Create?

Я спрашиваю, потому что я использую FluentValidation с API и мне нужен способ для API сообщать об ошибках проверки.

1 Ответ

0 голосов
/ 19 декабря 2018

Проверить ModelState на наличие ошибок (True / False)

<% YourModel.ModelState.IsValid %>

Проверить на наличие конкретной ошибки свойства

<% YourModel.ModelState["Property"].Errors %>

Проверить на наличие всех ошибок

<% YourModel.ModelState.Values.Any(x => x.Errors.Count >= 1) %>

ТамЗдесь вы найдете массу хороших ответов на этот вопрос.Вот ссылка на одно, а вот другое

...