이 부분은 설명하기가 약간 까다 롭습니다.MVC3 모델 디자인과 유효성 검사를 일치시킬 수 없습니다.
MVC3 프로젝트에서 일하고 있습니다.
오브젝트 1
int ID
IEnumerable<Object2> Object2s
Object2
int ID
[Required]
string Name
IEnumerable<Object1> Objects1s
내가 다음 오브젝트 1이 양식을 사용하여 업데이트하고 싶었 : 나는 다음과 같이 내가 모델을 설계 그래서 다 대다 관계를 가진 두 개의 개체가 여기에는 Object2의 각 Object2에 대한 체크 박스 목록이 포함됩니다. Object2가 Object2s.The보기에서 제거해야하는 경우이 다음과 유사한 보였다 점검 할 것 :
@Html.EditorFor(c => c.ID)
if (Model.Object2s.Count() > 0)
{
@Html.EditorFor(c => c.Object2s)
}
주 - c.Object2s의 EditorFor 사용자 정의 EditorTemplate입니다.
문제는 서버 측 유효성 검사에서 각 Object2 개체의 Name 속성 집합이 설정되어 있지 않아 오류를보고하는 경우입니다. Name 속성은 Object1을 업데이트하기 위해 중요하지 않습니다.
IEnumerable<int>
이 아닌 IEnumerable<Object>
으로 개체를 정의하면 잘못 되었습니까?
Object2에 대한 유효성 검사를 중지하는 또 다른 방법이 있습니까?
위의 업데이트 - 나는'Object2s'를 묶지 않고'int []'를 선택하는 것이 올바른 방법이라는 결론을 내 렸습니다. 그러나 바인딩을 원한다면 해결책은'Object2' 엔티티 모델에서 'Required'유효성 검사를 제거하고'Object2'를 기반으로 한 뷰 모델에 배치하는 것입니다. – WhiteWade