2011-11-01 5 views
1

Entity 프레임 워크를 사용하여 연결할 수있는 데이터베이스가 있습니다. My Home View는 응용 프로그램의 여러 부분을 표시하는 많은 부분 뷰로 구성됩니다. 내 컨트롤러에서 다른 모든 엔터티 데이터 개체를 포함하는 모델을 내보기로 보내고 내 특정 부분보기에 필요한 정보를 보내려합니다. 나는 이것에 대한 뷰 모델이 필요하다고 생각하지만 이전에는 이것을 해 본 적이 없다. currentFav, TopTenFav, Genres 및 Song 테이블이 4 개 있습니다. 모든 노래 찾기, 노래 추가 등과 같은 쿼리 기능을 사용하여 리포지토리 클래스를 만들었습니다. 내 색인보기는 현재 즐겨 찾기, 상위 10 개 및 장르와 같은 부분보기로 나뉩니다.Asp.Net MVC 3 뷰 모델을 만드는 방법

제 질문은 내 모델을 컨트롤러에서 내보기로 보내고 거기에서 모든 부분보기로 어떻게 아이디어를 얻었습니까? 난 당신의 ViewModel을 설계 할 어떻게 들으

답변

0

는 부분 뷰의 각각에 대한 인터페이스를 만드는 것입니다 있도록 :

class HomeViewModel : IPartialView1, IPartialView2,.... 
{ 
    currentFav CurrentFav { get; set; } 
} 

는로 HomeViewModel 채우기 : 실제의 ViewModel에 그런

interface IPartialView1 //Name it appropriately 
{ 
    currentFav CurrentFav { get; } 
} 

적합성 및 부분보기에서 확인하십시오.

<!-- CurrentFav-Partial.cshtml --> 
@Model IPartialView1 

<span>@model.CurrentFav.color</span> 

이렇게하면 모든 모드를 만들 수 있습니다. l 당신은 뷰로 들어가기를 원합니다. Partials가 렌더링 할 필요가있는 인터페이스가있는 한. 각 ViewModel에는 사용자가 생성 한 모든 유형의보기에 대한 인터페이스를 통해 원하는 수의 다른 모델/클래스가 포함될 수 있습니다.

+0

좋아요, 매우 흥미로 웠습니다. 시도해 보겠습니다. –

+0

하나의 질문은 어디에 있습니까? 내 모델 폴더 또는 내 views 폴더에 있습니까? –

+0

간단하게 Model 폴더에서 권장합니다. views 폴더의 유일한 것은 html-ish 파일이어야합니다. –