![](/img/trans.png)
[英]ASP.NET MVC how to create a model which pulls in data from 2 tables, to display in 1 view
[英]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.