我已经使用实体框架代码优先方法创建了MVC3应用程序。我的模型非常简单:
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int YearsAtCompany { get; set; }
}context类是
public class EmployeeDB : DbContext
{
public DbSet<Employee> Employees { get; set; }
}控制器看起来像这样:
EmployeeDB context = new EmployeeDB();
public ActionResult Index()
{
return View(context.Employees);
}
}我已经创建了EmployeesDb.mdf和Employee表。
但是我得到了这个错误:
The model item passed into the dictionary is of type 'System.Data.Entity.DbSet`1[DFEmployees.Models.Employee]', but this dictionary requires a model item of type 'DFEmployees.Models.Employee'. 已更新
@model DFEmployees.Models.Employee
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>请建议解决方案。
发布于 2011-03-22 23:26:36
看起来您的视图正在等待单个employee,并且您正在尝试使用employees的DBSet填充视图。
要解决这个问题,您可以将视图的@ IEnumerable设置为employees的模型,或者仅向视图发送一个employee,这取决于您在视图中显示的内容。
编辑:我认为这个问题与前一个问题无关。检查这个链接,我希望它能帮助你:LINK
发布于 2011-03-22 23:25:12
您的控制器操作返回一个员工列表,因此在视图中分别调整您的模型:
@model IEnumerable<DFEmployees.Models.Employee>或者,如果您想使用单个员工,请确保将单个员工传递给视图:
public ActionResult Index()
{
return View(context.Employees.FirstOrDefault());
}然后你就可以拥有:
@model DFEmployees.Models.Employeehttps://stackoverflow.com/questions/5393447
复制相似问题