C# MVC4在一个视图上为两个不同的相关表使用两个模型

C# MVC4在一个视图上为两个不同的相关表使用两个模型,c#,asp.net-mvc,asp.net-mvc-4,razor,model-view-controller,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,Model View Controller,我对MVC很陌生。 我有VisualStudio2010和MVC4 正如我读过的大多数文章一样,我必须创建一个模型类,然后添加生成(创建、删除、详细信息、编辑和索引视图)的控制器 现在假设我有两个相关的表,比如:Company和CompanyBranches 我可以为每一个单独创建模型、控制器和视图,但我不能组合两个视图(我想修改公司的详细信息视图,以便在其中显示所有相关的公司分支) 我该怎么做?知道我试图将公司分支机构模型的引用添加到“公司详细信息”视图,但MVC上似乎不允许添加两个模型。您可

我对MVC很陌生。 我有VisualStudio2010和MVC4

正如我读过的大多数文章一样,我必须创建一个模型类,然后添加生成(创建、删除、详细信息、编辑和索引视图)的控制器

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

我可以为每一个单独创建模型、控制器和视图,但我不能组合两个视图(我想修改公司的详细信息视图,以便在其中显示所有相关的公司分支)


我该怎么做?知道我试图将公司分支机构模型的引用添加到“公司详细信息”视图,但MVC上似乎不允许添加两个模型。

您可以为此创建模型或视图模型:

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;}
}

当我在视图上写入@model IEnumerable时,加载页面时会显示以下错误:传递到字典中的模型项类型为“AttendanceProject.Models.CompanyRelatedBranchs”,但此字典需要类型为“System.Collections.Generic.IEnumerable”的模型项[AttendanceProject.Models.CompanyRelatedBranchs]1[AttendanceProject.Models.CompanyRelatedBranchs]“。它应该是@model AttendanceProject.Models.ViewModel。然后,为了访问您的CompanyRelated分支的属性,您可以这样称呼它们:model.companyRelated‌​dBranches.property我已经尝试过了,但是VS将以下循环标记为错误:@foreach(模型中的var项){@Html.DisplayFor(modelItem=>item.companyBranches.branchName);}我更新了我的代码,你做得不对,因为你正在对分支列表进行ienumerating。检查我在视图模型上放置列表的更新代码@USER6218508终于成功了!非常感谢你。
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
}