簡體   English   中英

如何在ASP.NET MVC中的視圖中顯示多個表中的數據

[英]How to display data from multiple tables in view in asp.net MVC

我有三個表,分別稱為“材料組”,“材料類”,“材料類型”。 組和類之間以及類和類型之間存在父子關系,但組和類型表之間沒有直接關系。

下面是控制器的當前代碼:

var ctbl_MaterialType = db.ctbl_MaterialType.Include(c => c.ctbl_MaterialClass).Include(c => c.stbl_Supplier).ToList();

返回View(ctbl_MaterialType);

由於沒有直接關系,因此無法包含“組”表。 即使我嘗試下面的代碼,但給了我錯誤:

var ctbl_MaterialType = ( from mt in db.ctbl_MaterialType join mc in db.ctbl_MaterialClass on mt.ID_ctbl_MaterialClass equals mc.ID_ctbl_MaterialClass
where mt.ID_ctbl_MaterialClass == mc.ID_ctbl_MaterialClass
join mg in db.ctbl_MaterialGroup on mc.ID_ctbl_MaterialGroup equals mg.ID_ctbl_MaterialGroup
where mc.ID_ctbl_MaterialGroup == mg.ID_ctbl_MaterialGroup
join ms in db.stbl_Supplier on mt.ID_stbl_Supplier equals ms.ID_stbl_Supplier
where mt.ID_stbl_Supplier == ms.ID_stbl_Supplier select new {
                                          MaterialGroup = mg.MaterialGroup,
                                          MaterialClass = mc.MaterialClass,
                                          MaterialType = mt.MaterialType,
                                          MaterialTypeAlias= mt.MaterialTypeAlias,
                                          Supplier = ms.Supplier
                                      });
return View(ctbl_MaterialType);

如何包含組表,以便可以在視圖中使用它進行顯示?

創建一個ViewModel。 ViewModel是一個類,它包裝需要發送到視圖的所有其他模型。

示例:我將創建一個包含學生列表和城市列表的視圖模型。

查看模型類:

public class HomeIndexVM //(controllerName + actionName + VM)
{
    public List<Student> Students { get; set; }
    public List<City> Cities { get; set; }
}

在您的行動中:

HomeIndexVM viewModel = new HomeIndexVM {
    Students = context.Students.ToList();
    Cities = context.Cities.ToList();
};

return View(viewModel);

您認為:

@model HomeIndexVM

foreach(Student student in Model.Students) {
    //...
}

希望您能理解。 快樂的編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM