문제

모델 또는 뷰 모델에서 MVC (MVC)와 함께 ViewModels를 사용할 때 유효성 검사는 어디에 있어야합니까? (또는 둘 다 또는 둘 다? 그리고 왜? 나는 특히 ASP.NET MVC의 V2에 비추어이를 제기합니다.

복잡한/사용자 정의 검증은 어떻습니까?

도움이 되었습니까?

해결책

모든 비즈니스 별 검증은 모델에 있어야합니다. 모든 웹 사이트 별 유효성 검사는 모델 및/또는 뷰 모델에서 수행 할 수 있습니다. 이렇게하면 비즈니스 로직 (모델)이 다른 인터페이스 (Windows, 웹 양식 등) 뒤로 이동할 수 있으며 유효성 검사는 그대로 유지됩니다.

다른 팁

나는 종종 모든 수준에서 검증해야한다고 말할 것입니다. :)

나는 다음에 대해 잠시 생각하고 있었다.

  1. 사용자 입력 유효성 검증 : 확실히 모든 유형의 모델이 아닌 컨트롤러에서. 예시: CARTCHA.
  2. ViewModel (ViewModel이 아니라 ViewModel)에서 검증 된 관련 데이터 뷰. 예 : 비밀번호 확인, 필요한 이메일.
  3. 비즈니스 규칙 검증은 분명히 모델 검증으로 들어갑니다. 예 : 필요한 이메일, 할인 쿠폰은 유효해야합니다.
  4. 잠재적으로 사용 사례 (스토리, 시나리오 등) 검증. 속성을 검증하지는 않지만 전체 프로세스의 정확성을 검증합니다. 모델 검증으로 이동해야합니다 (또는 별도의 레이어에서 더 나은). 예시: 주어진 기간에 대한 주문이없는 경우 일주일 동안 무료로 3 개 항목 만 무료로 얻을 수 있습니다..

참고 : 나는 그것을 포함시켰다 필요한 이메일 2와 3으로 종종 속한 위치에 따라 다릅니다.
전자 메일이 유익한 역할 만 수행하는 경우 유효성 검사를 완화하여 뷰 모델로 푸시 할 수 있습니다. 이메일이 응용 프로그램에 대한 강력한 요구 사항 인 경우 분명히 모델 검증입니다.

네 번째는 실제로 우리가 이해하는 것처럼 검증과 관련이 없습니다.
그러나 또한 적용되어야합니다. 따라서 결과는 사용자에게 표시되어야합니다.

기본적으로 4 가지 유형의 검증은 동일한 인프라를 사용할 수 있습니다. 그러나 구현은 다음과 같습니다 :) ...

건배,
드미트리.

모델. 귀하의 검증은 비즈니스 계층에 있어야합니다. 뷰 모델은보기 설정을 얻기위한 것이어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top