2012-06-14 122 views
0

我正在開發我的第一個ASP.Net MVC 3 Web應用程序對SQL Server數據庫。我使用Database First從現有數據庫創建dbContext和Models。ASP.Net MVC3使用選項卡的部分視圖的主/細節

我正在嘗試創建1-M關係的主/細節視圖。我有TableA,它與TableB和TableC每個都有1-M的關係。但TableB和TableC並不直接相關。

當用戶轉到TableA的記錄的詳細信息視圖時,我希望它在視圖頂部顯示一個部分,其中包含TableA中列的數據。然後在下面我想有一組標籤,每個相關表(TableB和TableC)都有一個標籤。例如,當用戶點擊TableB選項卡時,我想加載一個局部視圖,列出TableB中的所有相關記錄。

有人可以幫我弄清楚如何做到這一點?我會發布代碼,但我不確定從哪裏開始。

我已經做了一些研究,發現很多討論ViewModel的帖子,但我不確定這與我的TableA模型(它包括TableB和TableC的相關集合)有何不同。我還發現瞭如何將每個關係中的記錄加載到TableA Details視圖中的不同表中,但這不包括我需要的Tab鍵功能。

在此先感謝。

回答

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> 

表B控制器:

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 
相關問題