【发布时间】:2015-03-02 20:15:51
【问题描述】:
我有两个类,第一个是基类,第二个是从第一个继承的。
public class hgm
{
}
public class Laboratory : hgm
{
}
我使用 EF Code First 来生成数据库。另外,我使用默认的 Scaffold 来生成控制器和视图。
我可以使用编辑、创建、详细信息页面,但是对于索引(实例列表),出现错误:
传入字典的模型项的类型是
'System.Collections.Generic.List'1[armnab.Models.hgm]',但是这个字典需要一个'System.Collections.Generic.IEnumerable'1[armnab.Models.Laboratory]'类型的模型项
这是我的控制器:
public class LaboratoriesController : Controller
{
private hgmContext db = new hgmContext();
// GET: Laboratories
public ActionResult Index()
{
return View(db.hgms.ToList());
}
}
和视图:
@model IEnumerable<armnab.Models.Laboratory>
<h2>Index</h2>
为什么会出现这个错误?
【问题讨论】:
-
您的操作返回一个
List<armnab.Models.hgm>,但您的视图需要一个IEnumerable<armnab.Models.Laboratory>。Laboratory是您的hgm的属性吗? -
您是否要过滤可能包含非实验室 hgms 的集合,或者 db.hgms 是否保证仅包含实验室实例?
标签: c# asp.net-mvc asp.net-mvc-5