2011-02-06 4 views
0

지금 사용자가 콘텐츠를 게시 할 수있게 양식을 작성 중이므로 WMD 편집기를 사용하고 싶습니다. Entity Framework 모델 Content이라는 복잡한 유형이 있는데, HTML 및 WMD 필드를 포함합니다.복잡한 형식이 Entity Framework에서 사용될 때 ASP.NET MVC 3 유효성 검사 오류가 발생하지 않습니다.

public class ArticleValidator : AbstractValidator<Article> 
{ 
    public ArticleValidator() 
    { 
     RuleFor(x => x.Title).NotEmpty(); 
     RuleFor(x => x.Content.WMD).NotEmpty(); 
    } 
} 

난 아무것도 입력하지 않고이 양식을 제출는 클라이언트 - : 양식에서

는 제목의 텍스트 상자 및 Content에 대한 대량 살상 무기 (WMD) 편집기있다, 나는 다음과 같이 FluentValidation 프레임 워크를 사용 유효성 검사는 제목을 유효하지 않은 것으로 만 잡습니다. 제목에 내용을 입력하면 내용이 비어 있어도 양식이 전송되고 서버 측 (비어있는 내용)에 오류가 발생하면 페이지에 입력 한 정보가 다시로드되지만 오류 메시지는 표시되지 않습니다. 표시되었습니다.

Entity Framework 모델에서 만든 복잡한 형식이이 문제를 일으키는 것 같습니다. 나는 ContentHtmlContentWMD에 대해 별도의 속성을 사용했는데 정상적으로 작동했습니다.

내가 원래 있던 위치로 되돌릴 필요없이 해결 방법이 있습니까?

답변

0

이 같은 중첩 된 규칙 정의를 사용할 수 없습니다

RuleFor(x => x.Content.WMD).NotEmpty(); 

당신은 콘텐츠 유형에 대한 또 다른 검증이 필요합니다 : 이것은 당신의 전망 안에 EF 모델을 사용하지 말아야 말했다되고

public class ArticleValidator : AbstractValidator<Content> 
{ 
    public ArticleValidator() 
    { 
     RuleFor(x => x.WMD).NotEmpty(); 
    } 
} 

. 보기 모델을 사용하고보기 모델에 유효성 검사 규칙을 정의해야합니다.

public class ArticleValidator : AbstractValidator<ArticleViewModel> 
{ 
    public ArticleValidator() 
    { 
     RuleFor(x => x.Title).NotEmpty(); 
     RuleFor(x => x.Content).NotEmpty();   
    } 
} 
+0

감사합니다. 효과가있는 – wliao