2012-06-14 6 views
0

SQL Server 데이터베이스에 대한 첫 번째 ASP.Net MVC 3 웹 응용 프로그램을 개발 중입니다. 필자는 Database First를 사용하여 기존 데이터베이스에서 dbContext 및 Models를 작성했습니다.탭으로 표시된 부분 뷰를 사용하는 ASP.Net MVC3 마스터/세부 정보

1-M 관계에 대한 마스터/세부 정보보기를 만들려고합니다. 나는 1-M 관계로 각각 TableB와 TableC와 관련된 TableA를 가지고 있습니다. 그러나 TableB와 TableC는 서로 직접 관련이 없습니다.

사용자가 TableA에서 레코드의 자세히보기로 이동하면 TableA 내의 열의 데이터가있는보기의 맨 위에 섹션을 표시하고 싶습니다. 그런 다음 아래에 각 관련 테이블 (TableB 및 TableC)에 대해 하나의 탭이있는 탭 그룹을 갖고 싶습니다. 예를 들어 사용자가 TableB 탭을 클릭하면 TableB의 모든 관련 레코드를 나열하는 부분 뷰를로드하려고합니다.

누군가가이를 수행하는 방법을 알아낼 수 있습니까? 나는 코드를 게시 하겠지만, 어디서부터 시작해야할지 모르겠습니다.

일부 연구를 수행하고 ViewModels에 대해 많은 게시물을 발견했지만 TableB 및 TableC 관련 컬렉션을 포함하는 내 TableA 모델과 어떻게 다른지 잘 모르겠습니다. 또한 각 관계의 레코드를 TableA Details 뷰 내의 다른 테이블로로드하는 방법을 발견했으나 필요한 탭 이동 기능은 포함되어 있지 않습니다.

미리 감사드립니다.

답변

0

각 하위 테이블에 대한 부분 뷰를 생성하고 AJAX ActionLink를 사용하여 탭을 기반으로 부분 뷰를로드했습니다.

TableA의보기 (마스터)의 일부 :

<div> 
    <nav> 
     <ul id="menu"> 
      <li>@Ajax.ActionLink("TableB", "TableATableBList", "TableB", New With {.id = Model.TableAID}, New AjaxOptions With {.UpdateTargetId = "partial-div"})</li> 
      <li>@Ajax.ActionLink("TableC", "TableATableCList", "TableC", New With {.id = Model.TableAID}, New AjaxOptions With {.UpdateTargetId = "partial-div"})</li> 
     </ul> 
    </nav> 
    <section> 
     <div id="partial-div"> 
     </div> 
    </section> 
</div> 

TableB의 컨트롤러 :

Public Class FlightlineController 
     Inherits System.Web.Mvc.Controller 

     Private db As MyEntities = New MyEntities 

     ' 
     ' GET: /TableB/ 

     Function Index() As ViewResult 
      Dim tableBs = db.TableBs.Include(Function(b) b.TableA) 
      Return View(tableBs.ToList()) 
     End Function 

     Function TableATableBList(ByVal id As Guid) As PartialViewResult 
      Dim tableA As TableA = db.TableAs.Find(id) 
      Return PartialView("TableBList", tableA.TableBs.ToList()) 
     End Function 
관련 문제