1

我有一个 ASP.NET MVC 4 C# 应用程序,我想在一个视图中显示来自 3 个不同模型的数据。

这些模式通过外键相关,如下所示:

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 />
    }

您可以在 ruby​​ on rails 中执行此操作,我如何在 MVC 4 中执行此操作?

4

2 回答 2

1

如果您使用任何流行的 ORM 工具(即:Nhibernate、实体框架),您就可以对这些关系进行建模。简而言之,在您对上述模式进行建模后,您将能够将 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 回答