유효성 검사 : 모델 또는 뷰 모델
-
12-09-2019 - |
문제
모델 또는 뷰 모델에서 MVC (MVC)와 함께 ViewModels를 사용할 때 유효성 검사는 어디에 있어야합니까? (또는 둘 다 또는 둘 다? 그리고 왜? 나는 특히 ASP.NET MVC의 V2에 비추어이를 제기합니다.
복잡한/사용자 정의 검증은 어떻습니까?
해결책
모든 비즈니스 별 검증은 모델에 있어야합니다. 모든 웹 사이트 별 유효성 검사는 모델 및/또는 뷰 모델에서 수행 할 수 있습니다. 이렇게하면 비즈니스 로직 (모델)이 다른 인터페이스 (Windows, 웹 양식 등) 뒤로 이동할 수 있으며 유효성 검사는 그대로 유지됩니다.
다른 팁
나는 종종 모든 수준에서 검증해야한다고 말할 것입니다. :)
나는 다음에 대해 잠시 생각하고 있었다.
- 사용자 입력 유효성 검증 : 확실히 모든 유형의 모델이 아닌 컨트롤러에서. 예시: CARTCHA.
- ViewModel (ViewModel이 아니라 ViewModel)에서 검증 된 관련 데이터 뷰. 예 : 비밀번호 확인, 필요한 이메일.
- 비즈니스 규칙 검증은 분명히 모델 검증으로 들어갑니다. 예 : 필요한 이메일, 할인 쿠폰은 유효해야합니다.
- 잠재적으로 사용 사례 (스토리, 시나리오 등) 검증. 속성을 검증하지는 않지만 전체 프로세스의 정확성을 검증합니다. 모델 검증으로 이동해야합니다 (또는 별도의 레이어에서 더 나은). 예시: 주어진 기간에 대한 주문이없는 경우 일주일 동안 무료로 3 개 항목 만 무료로 얻을 수 있습니다..
참고 : 나는 그것을 포함시켰다 필요한 이메일 2와 3으로 종종 속한 위치에 따라 다릅니다.
전자 메일이 유익한 역할 만 수행하는 경우 유효성 검사를 완화하여 뷰 모델로 푸시 할 수 있습니다. 이메일이 응용 프로그램에 대한 강력한 요구 사항 인 경우 분명히 모델 검증입니다.
네 번째는 실제로 우리가 이해하는 것처럼 검증과 관련이 없습니다.
그러나 또한 적용되어야합니다. 따라서 결과는 사용자에게 표시되어야합니다.
기본적으로 4 가지 유형의 검증은 동일한 인프라를 사용할 수 있습니다. 그러나 구현은 다음과 같습니다 :) ...
건배,
드미트리.
모델. 귀하의 검증은 비즈니스 계층에 있어야합니다. 뷰 모델은보기 설정을 얻기위한 것이어야합니다.
제휴하지 않습니다 StackOverflow