日期:2014-05-18  浏览次数:20583 次

关于MVC三层架构显示MODL数据时报错:传入字典的模型项的类型为.....这是什么错误?
传入字典的模型项的类型为“System.Data.Linq.Table`1[FinacialHelperMvcApplication.Models.User]”,但此字典需要类型“FinacialHelperMvcApplication.Models.User”的模型项。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidOperationException: 传入字典的模型项的类型为“System.Data.Linq.Table`1[FinacialHelperMvcApplication.Models.User]”,但此字典需要类型“FinacialHelperMvcApplication.Models.User”的模型项。



我现在在请教高手指导。这是什么类型的错误?
该如何解决'?

------解决方案--------------------
参数传递错误

你需要传递 FinacialHelperMvcApplication.Models.User
------解决方案--------------------
类型不一样啊 ,没有转化为面向对象的FinacialHelperMvcApplication.Models.User,这个要一个一个赋值的,比如:user.id,user.name等等
------解决方案--------------------
放到foreach中
或者加下标[0]
------解决方案--------------------
你看看你页面上面的 
@model User//你的Model类


和你传进去的 view 不匹配
例如
public ActionResult Index()
{
Return View(Book);
}

这里的 User 和 Book 不匹配就会报你上面的错误。


还有一种 虽说一致,但一个是集合,另一个不是集合 例如:

@model IEnumerable<User>//你的Model类

而你的

public ActionResult Index()
{
Return View(User);//错误,需要的是一个集合
Return View(User.ToList()); //正确,传进去的是集合
}