![](/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.