1

ASP.NET MVC 4 C#アプリケーションがあり、3つの異なるモデルのデータを1つのビューに表示したいと思います。

スキーマは、次のような外部キーを介して関連付けられます。

Model A | Model B | Model C
ID      | ID      | ID
          A_ID    | B_ID

モデルAのビューで、BとCでリンクされているデータを表示できるようにしたいと思います。

現在、モデルAのビュー(詳細)で次のことができます。

@model Application.Models.A

@foreach (var b Model.B)
    {
        @Html.DisplayFor(modelB => B.Title)
        <br />
    }

私はそれからできるようになりたいです:

@foreach (var b Model.B)
    {
        @Html.DisplayFor(modelB => B.Title)

        @foreach (var c Model.B.C)
        {
            @Html.DisplayFor(modelC => C.Title)
            <br />
        }

        <br />
    }

これはRubyonRailsで実行できますが、MVC 4でこれを実行するにはどうすればよいですか?

4

2 に答える 2

1

一般的なORMツール(Nhibernate、Entity Frameworkなど)のいずれかを使用している場合は、これらの関係をモデル化できます。上記のスキーマをモデル化した後、すぐにApplication.Models.Aのインスタンスをビューに渡すことができるようになります。このタイプは他のエンティティと必要な関係があるためです。

ただし、エンティティモデルをビューに直接渡すことは適切な方法ではないため、別のビューモデルを作成する方法を練習することをお勧めします。

于 2012-12-21T00:19:45.827 に答える
0

私はそれを考え出した。

モデル、コントローラー、リレーションシップを正しく設定しました。ビューを次のように変更する必要がありました。

@foreach (var b in Model.Bs)
    {
        @Html.DisplayFor(B => b.Title)
        <br />
        foreach (var c in b.Cs)
        {
            @Html.DisplayFor(C => c.Title)
            <br />
        }
    }

ありがとう。

于 2012-12-26T22:34:33.890 に答える