2011-03-21 1 views
1

작동하지 않는 것 특정 내 DTO이 validtor속성에 기반한 검증 내가이 튜토리얼의 모든 단계를 따라 asp.net-MVC

[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) 
     { 

유창하지 않은 이유에 대한 제안. 검사기 ??

ProjectValidator validator = new ProjectValidator(); 
ValidationResult result = validator.Validate(entity); 

답변

1

나는 어떤 종류의 확실하지 않다 : 내가 코드에서 직접 검증을 호출하면 내가 GUI를

enter image description here

에 표시가 잘 작동 내가이의 아래에 이미지를 추가 한 HTML 요소 FundingTypeId가 있지만 드롭 다운 목록이라고 가정합니다. 아무것도 선택하지 않으면이 오류가 표시됩니다. 불행히도 MVC의 기본 모델 바인더의 잘못된 디자인으로 인해 MVC와의 FV 통합의 한계 중 하나입니다. 이 메시지는 FV에 의해 생성되는 것이 아니라 DefaultModelBinder에 의해 생성됩니다.이 경우 들어오는 값을 속성 유형으로 변환 할 수 없습니다.

체크 아웃 나는 유창함 검증 토론 포럼에 게시 된이 두 질문 : http://fluentvalidation.codeplex.com/discussions/250798 http://fluentvalidation.codeplex.com/discussions/253389