繁体   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