2009-10-02 3 views
0

컨트롤러, 작업 및 사용자가 2 개 있습니다.컨트롤러 2 개와 ASP.NET MVC 1 개보기

"사용자에게 작업 만들기"에 대한보기를 만들어야합니다. 그래서 "사용자 목록"과 "작업 만들기"보기가 필요합니다.

일반적으로보기는 단 하나의 클래스에서만 상속됩니다.

두 클래스로 작업하는보기를 만들려면 어떻게해야합니까?

의견이 있으십니까?

답변

4

보기는 2 개의 클래스에서 상속 할 수 없으며 상속 할 수 없습니다.

작업보기 모델 목록이있는 사용자의보기 모델을 만듭니다.

+0

덕분에,이입니다 좋은 해결책 –

+0

내보기 모델은 아래와 같습니다. 공용 클래스 CreateTaskViewModel { 공공 CreateTaskViewModel (목록 사용자 MU_Task 작업) { this.Users = 사용자; this.Task = task; } 공개 목록 사용자 {get; 개인 집합; } 공개 MU_Task 작업 {get; 개인 집합; } } –

0

각 뷰 (사용자 목록 및 생성 작업)를 부분 뷰 (.ascx 사용자 컨트롤)로 구현하고 뷰 (.aspx 페이지) 내에서 이들 각각을 호출 할 수 있습니다. 부분 뷰를 렌더링

은 RenderPartial 방법을 사용하여 수행됩니다 : 이것은 재사용 및 뷰는 다른 뷰 (페이지)를 건너 결합 할 수

this.Html.RenderPartial("UserList"); 
this.Html.RenderPartial("CreateTask"); 

.

AmisL은 각 부분보기에 ViewModel의 다른 부분을 전달할 수 있다고 지적했습니다.

public class UserListAndTasks 
{ 
    public IQuerable<User> UserList; 
    public Task Task; 
} 

그런 다음보기에서 사용할 수있는 파셜 :

+1

부분 뷰가 뷰 모델로 null을 받으면 뷰에서 뷰 모델을 선택하려고합니다. 이로 인해 데이터 유형 불일치 오류가 발생할 수 있습니다. –

0

전망이 좋아, 그래서 그냥 사용자 정의 클래스를 작성, 모델 같은 클래스를받을 수 있습니다

<%= Html.RenderPartial("UserList", Model.UserList); %> 
<%= Html.RenderPartial("CreateTask", Model.Task); %>