【问题标题】:ASP.NET MVC how to create a model which pulls in data from 2 tables, to display in 1 viewASP.NET MVC 如何创建从 2 个表中提取数据的模型,以在 1 个视图中显示
【发布时间】:2009-08-28 11:08:59
【问题描述】:

我认为这可能是一个非常简单的问题,但我才刚刚开始使用 .net 和 c#,并且才真正开始真正了解 OO 的东西。

我已经构建了 NerdDinner 应用程序,目前我正在使用我自己的项目在它之上构建。

在书呆子晚餐的情况下,我需要做的是显示晚餐的详细信息,同时在同一页面上显示所有相关的 RSVP。

url可以和普通的一样

晚餐/详情/2

但 2 将用于带回与此相关的所有 rsvp,并将它们显示在同一页面上的列表中。

我花了一些时间尝试在dinnerRepository.cs 文件中执行此操作,但我有点卡住了,不确定执行此操作的最佳方法。

然后我希望能够从同一个页面添加更多 rsvp(我知道在这个例子中 dosent 工作,但你看到我正在尝试向 tableB 添加更多行,与 tableA 中的单行相关)

如果您认为第二部分应该在别处提问,请只回答第一个问题。

非常感谢您的帮助。

【问题讨论】:

    标签: c# asp.net-mvc linq


    【解决方案1】:

    您根本不需要更改 DinnerRepository.cs 文件。晚餐模型已经有一个 RSVP 集合。您只需要像这样修改详细信息视图:

        <p>
        <% foreach(NerdDinner.Models.RSVP rsvp in this.Model.RSVPs)
           { %>
           <%= Html.Encode(rsvp.AttendeeName) %>
           <br />
           <%} %>
        </p>
    

    你完成了。

    【讨论】:

      【解决方案2】:

      IIRC,详细信息视图传递了一个晚餐实例。只需在详细信息页面上呈现该晚餐的回复即可。

      【讨论】:

      • 所以你是说我不需要对模型做任何事情,它应该已经存在了吗?
      【解决方案3】:

      我喜欢使用 RenderAction 来处理这类事情。 RenderAction 允许您定位特定的子控制器方法以在页面中呈现子视图。由于它是一种模块化技术,因此可以在多个页面中使用而无需更改。

      RenderAction 是 Futures 程序集的一部分:Microsoft.Web.Mvc

      【讨论】:

        猜你喜欢
        • 2016-02-05
        • 1970-01-01
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-16
        • 1970-01-01
        相关资源
        最近更新 更多