在ASP.net MVC中使用Entity Framework创建模型时,如何在单个View中调用两个表中的数据

use*_*519 1 c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有两个表,其结构如下:

Employee:

int Id
string EmployeeName 
string Department

Department:

int Dept_Id
string Department   
Run Code Online (Sandbox Code Playgroud)

部门表存储所有部门及其各自的ID,我有一个包含DropDownList的Employee注册表.我想在下拉列表中加载表单时填充所有部门,因为我必须在同一视图上调用两个模型.我在使用元组,但它并没有解决我的问题.请帮忙解决我的问题.我正在使用的代码是:

public ActionResult Index()
{

 var model = new model<Employee, Department>(new Employee(), new Department());

    return View(model);
}


@model Tuple<MVcEmpApp.Models.Employee, MVcEmpApp.Models.Department>    


[HttpPost]
public ActionResult InsertRecord(MyViewModel model)
{
if(ModelState.IsValid)
 {
   var Employee=new Employee();
   Employee.EmployeeName=model.employee.EmployeeName;
   Employee.Department=model.employee.Department;
   db.AddToEmployee(Employee);
   db.SaveChanges();
  }
}
Run Code Online (Sandbox Code Playgroud)

请提出任何建议,谢谢你的答案......

Mur*_*san 10

您可以创建一个ViewModel包含两个模型的包装类.阅读MVC中的ViewModel是什么?

public class MyViewModel
{
  public Employee employee{get;set;}
  public Department dept{get;set;}

}
Run Code Online (Sandbox Code Playgroud)

调节器

public ActionResult Index()
{

    var model = new MyViewModel{employee=new Employee(), dept=new Department()}

    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

在你看来

@model MyViewModel

<label>First Name</label> 
 @Html.TextBoxFor(m=>m.Employee.FirstName)
Run Code Online (Sandbox Code Playgroud)