2010-10-01 70 views
0

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

我的详细信息页面的代码如下所示:

public ActionResult Details(int id) 
    { 

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

我的问题是:怎样的项目列表发送到设备详细信息视图藏汉?

回答

0

您可以将“项目”属性添加到您在“详细信息”页面中使用的ViewModel,并在调用呈现DetailsView之前将其填充到控制器中。

我不知道你的Device.Find(ID)的回报,但如果它返回一个列表项目的设备,你可以做这样的事情

VAR projectList = Device.Find(ID);

DetailsViewModel viewModel = new DetailsViewModel();

viewModel.Projects = projectList;

viewModel.DeviceName =“Something”;

viewModel.Price = 12;

return View(“Details”,viewModel);

+0

实际上,它从设备表中返回详细信息。我可以改变它,并显示一个项目列表。但我想要的是显示来自两个表的数据。 – Prd 2010-10-01 15:03:44

+0

我建议让你的viewModel的Details视图具有这两种信息(设备+项目列表)的属性。您可以在Device.Find()内部或外部执行此操作,如我所建议的示例中所述。我希望这有帮助。 – 2010-10-01 18:52:58