2011-08-20 2 views
1

을 [바인드 (= "SomeProperty"을 제외)]시 속성 "상태"엔티티 탐색 기준을 가지고바인딩에서 중첩 특성 제외 -

[Bind(Exclude = "State")] 
public class CityViewModel { 
    public int Id {get;set;} 
    public int StateId { get; set; } 
    public City City { get; set; } 
} 

아래 주어진 I 단순한 뷰 모델이있다. 내 견해로는 위에서 CityViewModel을 사용하여 새로운 City를 추가하려고합니다. 도시를 추가 할 때 MVC가 "City.State"속성을 무시하여 바인딩되고 유효성이 검사되지 않게하려고합니다. 그래서 CityViewModel에 [Bind(Exclude = "State")]을 사용합니다. 놀랍게도, 컨트롤러에서 "City.State"필드 (내가 바인딩 및 유효성 검사에서 제외하려고 시도하는)에 대한 모델 오류가 발생합니다.

바인딩 및 유효성 검사에서 "City.State"속성을 무시하도록 MVC에 어떻게 말합니까?

편집 : 나는 또한 [Bind(Exclude = "City.State")]을 시도했지만 작동하지 않습니다. 나는 여전히 Model.IsValid 거짓을 얻는다.

답변

2

유효성 검사는 바인딩 항상 City.State

당신은 ModelState를 호출 할 수의 검증을 방지하지 않을 제외 모델의 모든 속성과 작동, 그래서 바인딩 [ "City.State"는 별도의 단계입니다 ] .Errors.Clear()를 호출 한 다음 Model.IsValid를 확인하십시오.

P. 위에서 언급 한 해결 방법을 사용하여 올바른 속성 집합을 가진 다른 viewmodel 클래스를 추가하는 것이 좋습니다.

+0

고맙습니다. 효과가있다. – Jatin

관련 문제