MVC4在一个视图上使用两个模型用于2个不同的相关表

时间:2017-09-11 09:31:52

标签: c# asp.net-mvc asp.net-mvc-4 razor model-view-controller

我对MVC很新。 我有visual studio 2010和MVC 4。

正如我读过的大多数文章,我必须创建一个模型类,然后添加生成(创建,删除,细节,编辑和索引视图)的Controller。

现在假设我有两个相关的表,例如:Company和CompanyBranches。

我可以单独为每个视图创建模型,控制器和视图,但我无法组合2个视图(我想修改公司的详细信息视图,以显示所有相关的CompanyBranches。)。

我该怎么做?知道我试图将公司分支模型的引用添加到公司详细信息视图,但看起来在MVC上不允许添加两个模型。

1 个答案:

答案 0 :(得分:2)

您可以为此创建一个Model或ViewModel:

public class ViewModel
{
   public Company MyCompany { get; set;}
   public CompanyBranches MyCompanyBranches { get; set;}

   //If you have multiple items, you can do this:
   public IList<CompanyBranches> LstCompanyBranches { get; set;}
}

然后,您将传递给您的观点:

public ActionResult Create()
{
   ViewModel model = new ViewModel();
   model.MyCompany = //populate your Company details class
   model.MyCompanyBranches = //populate your CompanyBranchess class

   return View(model); //return your view with two classes on one class
}