c#mvc5从控制器到视图传递多个列表,对象,...

时间:2016-12-19 09:00:10

标签: c# entity-framework asp.net-mvc-5

我可以使用此方法从控制器发送一个数据库获取结果作为列表:

var all_companies = db_cnx.Db.tbl_company.ToList();
var all_contractors = db_cnx.Db.tbl_contractor.toList();

return View(all_companies);

但我如何发送多个对象或列表,...来查看? 像:

return view(all_companies, all_contractors)
这可能吗? 我读了一条评论说你必须声明一个ViewItem并在其中存储vars的组合并返回新的数据集但是如何?

1 个答案:

答案 0 :(得分:2)

View,您只能返回一个班级。

您必须使用这些列表创建模型类并传递该模型。

public class MyModel {
   public List<Company> Companies {get;set;}
   public List<Contractor> Contractors {get;set; }
}
var all_companies = db_cnx.Db.tbl_company.ToList();
var all_contractors = db_cnx.Db.tbl_contractor.toList();
var model = new MyModel {
    Companies = all_companies,
    Contractos = all_contractors
}

return View(model);

在视图中,您使用的是模型而不是类似的列表:

@model MyModel

和用法:

@Model.Companies 
@Model.Contractors