过去的模型到部分视图与脚手架模板

时间:2016-05-11 22:59:34

标签: asp.net-mvc entity-framework

借用this post的例子。

控制器:

EmployeeEntities storeDB = new EmployeeEntities();
         public ActionResult Index()
            {
                var employee = storeDB.Employees.ToList() 
                return View(employee);
            }

模型(DbContext类)

 public class EmployeeEntities : DbContext
{
    public DbSet<Employee> Employees { get; set; }
}

假设EmployeeEntities位于Models.Employees名称空间中。现在我想创建一个局部视图。我应该做哪一个?

// A:
@model Models.Employees.EmployeeEntities.Employees

// or B:
@model List<Employee>

还是其他什么?我可以使用ViewBag作为模型吗?

2 个答案:

答案 0 :(得分:1)

你在控制器中的行动

EmployeeEntities storeDB = new EmployeeEntities();
         public ActionResult Index()
            {
                var employee = storeDB.Employees.ToList(); 
                return View(employee);
            }

根据上面的代码,您可以看到您的视图模型为List<Employee>

List<Employee> employee = storeDB.Employees.ToList();

所以在你看来

@using namespace_of_employee_class
@model List<Employee>()

答案 1 :(得分:0)

由于List<Employee>的对象被转移到视图,因此视图中模型的命名空间与CONTEXT类的命名空间(此处为EmployeeEntities类)无关。它是模型类的命名空间(这里是类Employee)。

我认为应该是

@model System.Collections.Generic.List<Models.Employees.Employee>

这假设类Employee在名称空间&#39; Models.Employees&#39;。