1
我遵循了所有在本教程下列步驟來:基於屬性的驗證似乎不使用asp.net-MVC
創建一個驗證器類
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具體這個validtor
[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)
{
對於爲什麼它沒有采取流利的任何建議。驗證器 ??我已經添加下面的圖片是我在GUI
看看我直接在代碼中調用驗證它工作得很好:
ProjectValidator validator = new ProjectValidator();
ValidationResult result = validator.Validate(entity);