码迷,mamicode.com
首页 > 数据库 > 详细

MVC V接受C中传递过来的数据库表单对象时候 出现的一个问题!

时间:2015-11-24 12:30:28      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

var models = (from u in db.ModelLibrary
where u.ModelID == ModelID
select u).FirstOrDefault();   return(models)此时models为空或者是第一个对象  

而View页面 @model IEnumerable<OnlinePrint.Models.ModelLibrary>  的含义是至少一个以上 也就是说return 的对象一定要一个以上!!!! 所以一直出错   

出错提示如下 

传入字典的模型项的类型为“System.Data.Entity.DynamicProxies.ModelLibrary_4BFA8721DB2B8DB70318DBFA5AB38D95C478B32AC7B2B8709C5DD2BEBD7C4E4E”,但此字典需要类型“System.Collections.Generic.IEnumerable`1[OnlinePrint.Models.ModelLibrary]”的模型项。

解决方案有二

1.按照上面说的  var models = (from u in db.ModelLibrary
where u.ModelID == ModelID
select u)     此时models是一批符合条件的数据集!   此时再去return(models) 这是View 页面就可以使用  IEnumerable了 然后去遍历model中的数据  哈哈~

2.走自己的路 仍然用var models = (from u in db.ModelLibrary
where u.ModelID == ModelID
select u).FirstOrDefault();    

ps:因为这样models方便进行一些重复插入的判断 并且可以去访问该表中的第一条数据的各个列 如models.列1  

此时使用ModelLibrary models = db.ModelLibrary.Find(ModelID);也可以去访问表中数据

只不过不清楚当modelid找不到时models是否能为空 也就是和.defaultorfirst 效果是否相同

那么此时 return处要有一些改变 return的对象不能是单一的一条数据

要这样去写 return View(new List<ModelLibrary>() { models });                        

此时虽然还是一条数据但是现在是一个数据集!

 

这两种办法都可以让View愉快的显示数据库中页面

 

MVC V接受C中传递过来的数据库表单对象时候 出现的一个问题!

标签:

原文地址:http://www.cnblogs.com/luyu1993/p/4990943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!