문제

최근에 기본 모델이 복잡 할 때 ASP.NET MVC 응용 프로그램의 프레젠테이션 계층을 구성하는 가장 좋은 방법을 탐색했습니다. 지금까지 나온 것은 ViewModel 객체가있는 MVVM 아키텍처입니다. 그러나 이런 종류의 아키텍처가 경우에 따라 모범 사례가 무엇인지 잘 모르겠습니다.

  • ViewModel 객체에는 모델 객체가 포함될 수 있습니까?
  • MVVM을 사용하는 경우 모델 객체가 뷰에서 사용되는 것이 좋습니다.
  • ViewModel 또는 모델 클래스에서 유효성 검사를 구현 해야하는 곳은 어디입니까?
  • 비즈니스 계층 (서비스 계층)은 ViewModel에 대해 알고 있어야하며 누가 ViewModel과 모델 사이에 매핑 할 책임이 있습니까?
도움이 되었습니까?

해결책

  • 대부분의 경우, ModelView 객체는 여러 유형의 전송이 필요하거나 시야에만 필요한 몇 가지 더 많은 속성을 통과해야 할 때 모델 객체를 보유하는 컨테이너 일뿐입니다.
  • View의 작업이 모델의 세부 사항을 표시하고 볼 수있는 다른 것이 없다면 왜 그렇지 않습니까?
  • 의존합니다. ModelView 및 Model 클래스를 사용하여 계층간에 데이터를 전달할 수 있습니다. Cutom 모델 바인더 또는 서비스 계층을 통해 검증을 처리합니다.
  • 그들이 ModelViews에 대해 알지 못하는 이유는 없습니다. 그러나 일반적으로 컨트롤러에서 서비스 계층에서 요청 된 모델을 얻은 다음 직접 또는 모델 뷰로 전달합니다.

BTW, 나는 ModelViews를 아키텍처로 간주하지 않을 것입니다. "필요할 때 하나를 사용하십시오"와 비슷합니다. 결국, 데이터를 전달하기 위해이 작업을 수행 할 필요는 없습니다.

class SomeModelView {
    public MyModel model { get; set; }
}

그냥 통과하십시오 MyModel 그것이 관점이 그 일을하기에 충분하다면.

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