2012-04-01 2 views
1

정보를 표시하는 1 개의 기본 패널과 기본 패널에서 일어나는 일을 기반으로 여러 개의 패널 중 하나를 표시 할 수있는 측면 패널이 포함 된 웹 페이지 레이아웃이 있습니다. 예를 들어 메인 패널에 프로젝트 목록이 표시 될 수 있으며 편집 패널이 표시되어야하는 프로젝트를 클릭 할 수 있습니다. 또는 삭제 패널이 표시 될 프로젝트를 삭제할 수 있습니다. 약 5 개 또는 6 개의 패널이 있습니다. 이것은 전체 응용 프로그램이 아니므로 기본 패널을 부분보기로 만들 수 없습니다.다중 패널 레이아웃을 처리하는 방법

어떻게 구현하나요? 기본적으로 컨트롤러에서 두 가지 뷰를 반환하려고하지만 분명히 불가능합니다. 내 생각 엔 메인 패널은 컨트롤러가 반환 한 뷰 여야합니다. 그런데 어떻게 사이드 패널을 설정할 수 있습니까? 어떻게 든 1 개의 컨트롤러 동작에서 2 개의보기를 1로 결합 할 수 있습니까? 또는 두 개의 컨트롤러를 하나의 동작에 연결해야합니까? 어떻게하면 좋을까요?

저는 ASP.NET MVC를 처음 접했지만 직접 인터넷 검색에 문제가 있습니다. 양해 해 주셔서 감사합니다.

답변

0

이 경우 ViewModel을 사용하여 여러 도메인 모델을 수집하여보기에 detailed here (이 작업을 수행 할 것임)으로 전달할 수 있습니다. 마찬가지로 당신은 강하게 타입이 지정된 객체로서 주 패널 객체를 전달하고 ViewData를 사용하여 다른 데이터 항목을 전달할 수 있습니다. 그런 다음

@{ Html.RenderPartial("ViewName", dataItem); } 
+0

감사; 나는 그 마지막 옵션을 고려했다. 그 결과 컨트롤러의 작업을 어떤 패널에서 보여줄 것인지를 알아 내야 만하는 커다란 switch-statement가 생길 것입니다. – garma

+0

부분 뷰는 뷰 렌더를 정의하기위한 문자열 만 있으면되고 뷰에 많은 로직을 가지기보다는 컨트롤러에서 전달 될 수 있습니다. – AlexC

0

데이터 현명한 당신이 @AlexC가 언급 한 바와 같이 다른 패널에 대한 데이터를 포함하는 단일 뷰 모델 객체를 패스을 사용하여 데이터 전달하여 그들을 렌더링, 각각의 패널에 대해 별도의 부분 뷰를 사용할 수 있습니다.

UI 현명한 여기에 표시된 것처럼 서로 다른 패널을 렌더링하는 탭 JQuery와 플러그인을 사용할 수 있습니다 - http://jquerytools.org/demos/tabs/index.html

관련 문제