я выполнил все эти шаги в этом уроке:
Создан класс валидатора
public class ProjectValidator : AbstractValidator<ProjectViewModel>
{
public ProjectValidator()
{
//RuleFor(h => h.Milestone).NotEmpty().WithName("Milestone");
RuleFor(h => h.Applications).NotNull().WithName("Application");
RuleFor(h => h.InitiativeName).NotNull().WithName("Business Aligned Priority");
RuleFor(h => h.BusinessDriverId).NotNull().WithName("Business Driver");
RuleFor(h => h.FundingTypeId).NotNull().WithName("Funding Type");
RuleFor(h => h.Description).NotEmpty().WithName("Description");
RuleFor(h => h.Name).NotEmpty().WithName("Project Name");
RuleFor(h => h.Sponsors).NotNull().WithName("Sponsors");
}
}
Поместите атрибут в моем DTO, чтобы указать этот валидатор
[Validator(typeof(ProjectValidator))]
public class ProjectViewModel
{
}
но после публикации формы, когда я иду, чтобы проверить список ошибок ModelState, ошибки, которые я вижу, происходят из проверки по умолчанию asp.net-mvc.
public ActionResult UpdateMe(ProjectViewModel entity)
{
Project existingProject = this.Repository.Fetch<Project>(entity.Id);
UpdateProperties(entity, existingProject);
var allErrors = ModelState.Values.SelectMany(v => v.Errors);
if (allErrors.Count() > 0)
{
какие-либо предложения о том, почему не нужно свободно говорить. валидатор ?? Я добавил изображение ниже того, что я вижу на графическом интерфейсе
![enter image description here](https://i.stack.imgur.com/kGOFA.png)
если я вызываю валидатор прямо в коде, он работает просто отлично:
ProjectValidator validator = new ProjectValidator();
ValidationResult result = validator.Validate(entity);