ASP.NET MVC에서 유효성 검사를 구현하는 방법에 대한 대부분의 정보는 모델 (모델과 컨트롤러 사이의 서비스 계층을 작성하거나 유효성 검사 속성을 사용하여 모델의 속성을 꾸미기) .ASP.NET MVC의 ViewModels에 대한 유효성 검사
내 응용 프로그램에서는 컨트롤러와 뷰 간의 모든 통신에 ViewModels를 사용합니다.
'EmailAddress'라는 속성을 가진 'LoginViewModel'이라는 로그인 페이지 용 ViewModel이 있습니다.
사용자가 전자 메일 주소를 입력하고 제출을 클릭하면이 ViewModel이 채워지고 컨트롤러로 전자 메일 주소의 유효성이 검사됩니다.
올바른 이메일 주소 여야하며 사용자는 시스템에 등록 된 도메인의 사용자 여야합니다.
여기에 유효성 검사를 추가하는 편리한 방법은 무엇입니까? ViewModel 자체에 검증을 넣어야합니까? 아니면 컨트롤러에 있어야합니까?
훌륭한 아이디어, Keith! 지금은 ViewModels에 모델을 포함시키는 것과 같은 전략을 사용합니다. Model과 ViewModel 모두 유효성 검사를 동일한 방식으로 구현할 수 있고 xVal과 같은 JS 프레임 워크가 원활하게 작동 할 수 있다면 좋겠다. 가장 유연한 방법입니다. 밸리데이션은 모델에만 독점적으로 묶여 있어야한다고 저는 생각하지 않습니다. – Jonathan
또한 xVal을 포함하여 모델 클래스가 포함 된 사용자 정의보기 모델을 사용하고 있습니다. 그러나 모델의 속성의 하위 집합 만 포함하도록 내 viewmodel이 필요한 경우가 있습니다. 나는 현재 Automapper에서 해당 모델을 매핑하려고합니다. 그것은 잘 작동하지만 어떻게 그 시나리오에서 xVal을 사용합니까? 메타 데이터 개체가 viewmodel의 일부가 아닌 속성을 포함하는 경우 AssociatedMetadataTypeTypeDescriptionProvider가 throw되기 때문에 MetaData 특성으로 ViewModel을 장식하지 않습니다. Automapper를 사용하신다면,이 문제를 어떻게 해결했는지 알고 싶습니다. –