【问题标题】:Detail view list from multiple tables(ASP MVC)来自多个表的详细视图列表(ASP MVC)
【发布时间】:2010-10-01 21:24:01
【问题描述】:

我有一个包含设备列表的页面。每个设备都有一个详细信息页面。我想要实现的是在设备详细信息页面上获取属于设备的所有项目的列表。一个设备可以有多个项目,一个项目也可以链接到多个设备(多对多关系)。我的数据库中有一个表来链接设备表和项目表,以实现多对多关系。我正在使用活动记录与我的数据库进行通信。

我的详情页的代码如下所示:

public ActionResult Details(int id)
    {

        ViewData["Id"] = id;
        return View(Device.Find(id));
    }

我的问题是:如何将项目列表也发送到设备详细信息视图?

【问题讨论】:

    标签: asp.net-mvc activerecord


    【解决方案1】:

    您可以将 Projects 属性添加到您在详细信息页面中使用的 ViewModel,并在调用渲染 DetailsView 之前将其填充到您的控制器中。

    我不确定您的 Device.Find(id) 返回什么,但如果它返回设备的列表项目,您可以执行类似的操作

    var projectList = Device.Find(id);

    DetailsViewModel viewModel = new DetailsViewModel();

    viewModel.Projects = 项目列表;

    viewModel.DeviceName = "某事";

    viewModel.Price = 12;

    return View("详细信息", viewModel);

    【讨论】:

    • 实际上它从设备表中返回详细信息。我可以改变它并让它显示一个项目列表。但我想要的是显示两个表中的数据。
    • 我建议让您的“详细信息”视图的 viewModel 具有两种信息(设备 + 项目列表)的属性。您可以在 Device.Find() 内部或外部执行此操作,如我建议的示例所示。我希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多