지난 주에 ASP.NET MVC3에서 개발 한 블로그 엔진의 소스 코드를 다운로드했습니다. 코드를 분석 할 때, 뷰 모델 작성을 위해 데이터를 검색하는 데 다른 방법을 사용한다는 사실을 알았습니다.보기 모델에서 직접 인스턴스화 된 저장소가 있음
컨트롤러 :
public ActionResult Details(string slug)
{
var model = new PostDetailsViewModel(UnitOfWork, slug);
return View(model);
}
보기 모델 :
public PostDetailsViewModel(IUnitOfWork unitOfWork, string slug)
{
_repository = new PostRepository(unitOfWork);
Post = _repository.FindBySlug(slug);
}
저장소 :
public Post FindBySlug(string slug)
{
return FindAll().SingleOrDefault(x => x.Slug == slug);
}
여기
는 '포스트'뷰 모델의 예는
보시다시피 저장소는 생성자의 뷰 모델에서 직접 인스턴스화됩니다. 그것은 올바른 방법입니까? 컨트롤러 >> 비즈니스 >> 저장소 당신의 조언을
감사 :
일반적으로,이 같은 비즈니스 계층 결국 서비스 계층을 사용했다.
감사합니다. Darin, 이것은 내가 찾고있는 응답입니다.보기 모델을 채우는 것에 대한 게시물을 읽었습니다.이 모델은 2 개월 전에 응답했는데,이 방법이 나에게 더 나은 접근 방법 인 것처럼 보입니다. 여기 있습니다 : http://stackoverflow.com/questions/7943039/how-are-you-populating-validating-your-viewmodels – Bronzato