나는이처럼 보이는 뷰 모델이있어 :DataAnnotations를 사용하여 Viewmodel의 일부 필드 만 유효성을 검사하려면 어떻게해야합니까?
public class Viewmodel
{
public int Type {get;set} // 0 if typeA, 1 if typeB
[Required]
public string AProperty1 {get;set}
[Required]
public string AProperty1 {get;set}
...
[Required]
public string BProperty1 {get;set}
[Required]
public string BProperty1 {get;set}
}
이 뷰 모델을 얻고 견적 사용자 입력 AProperty1, AProperty2 등을 널 (null)로 BProperty-의 반환에이 개 형태가됩니다. FormB와 동일합니다. 양식 유형 (FormA 또는 FormB)이 ViewModel.type 필드에 지정됩니다.
문제는 내 컨트롤러에서 ModelState.IsValid 속성을 확인하고 필드의 절반이 항상 null이기 때문에 두 가지 모두에서 false가된다는 점입니다.
하나의 가능한 솔루션은 어떻게 든 내 ModelView의 ModelState.IsValid 속성을 재정 의하여 형식을 전달할 수 있습니다. 하지만 내가 아는 한 방법은 없습니다.
다른 해결책이 있습니까? (클라이언트 쪽 유효성 검사와 함께 사용할 수 있어야 함)
은 IMO 여기에 문제는 당신이 당신의 진짜보기 모델과 맞지 않는 "뷰 모델"을 가지고있다. 그것을 나눠야합니다. – onof
나는 이것이 잘못된 길이고 여기에서 문제의 주원인임을 알고있다. 그러나 이것은 필수 사항이다. – GaGar1n