0

SQL Server データベースに対して最初の ASP.Net MVC 3 Web アプリケーションを開発しています。Database First を使用して、既存のデータベースから dbContext と Models を作成しました。

1-M 関係のマスター/詳細ビューを作成しようとしています。TableB と TableC にそれぞれ 1-M の関係で関連付けられている TableA があります。ただし、TableB と TableC は互いに直接関連していません。

ユーザーが TableA のレコードの詳細ビューに移動したときに、ビューの上部に TableA 内の列のデータを含むセクションを表示したいと考えています。次に、関連するテーブル (TableB と TableC) ごとに 1 つのタブを持つタブのグループを作成します。たとえば、ユーザーが TableB タブをクリックすると、TableB のすべての関連レコードを一覧表示する部分ビューをロードしたいと思います。

誰かがこれを達成する方法を理解するのを手伝ってくれますか? コードを投稿しますが、どこから始めればよいかわかりません。

私はいくつかの調査を行い、ViewModel について議論している多くの投稿を見つけましたが、TableB と TableC の関連コレクションを含む私の TableA モデルとこれがどのように異なるのかはわかりません。また、TableA の [詳細] ビュー内で各リレーションシップのレコードを別のテーブルに読み込む方法も発見しましたが、これには必要なタブ移動機能が含まれていません。

前もって感謝します。

4

1 に答える 1

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
于 2012-06-20T15:37:13.380 に答える