2010-10-01 80 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