MVC entity(EF)查询部分字段后怎么在view输出 30
情况是这样的:有一数据库上下文db,包括实体users,该实体包含30个字段idnamepwd...,一般是通过model输出,控制器输出代码为:returnview(d...
情况是这样的:
有一数据库上下文db,包括实体 users,该实体包含30个字段 id name pwd ...,一般是通过model输出,
控制器输出代码为: return view(db.users.where(u=>true).ToList());
视图这边只要声明:@model List<users>就可以在html视图中调用List对象进行输出。
现在的问题是,前端视图只输出2个字段,为了节省不必要的资源,我的控制器代码就改写成了:
return view(db.user.where(u=>true).select(u=> new { u.id,u.name }).ToList());
但是这样前端就不能通过@model List<users>调用,会提示类型转换错误,如果输出dicmicy类型,又会提示Object不存在id属性……纠结啊~
求大神指教,解决问题的追加最高分。
最好能在前端继续使用对象类型输出,如果不行,请指教其它比较好的方案,谢谢! 展开
有一数据库上下文db,包括实体 users,该实体包含30个字段 id name pwd ...,一般是通过model输出,
控制器输出代码为: return view(db.users.where(u=>true).ToList());
视图这边只要声明:@model List<users>就可以在html视图中调用List对象进行输出。
现在的问题是,前端视图只输出2个字段,为了节省不必要的资源,我的控制器代码就改写成了:
return view(db.user.where(u=>true).select(u=> new { u.id,u.name }).ToList());
但是这样前端就不能通过@model List<users>调用,会提示类型转换错误,如果输出dicmicy类型,又会提示Object不存在id属性……纠结啊~
求大神指教,解决问题的追加最高分。
最好能在前端继续使用对象类型输出,如果不行,请指教其它比较好的方案,谢谢! 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏30(财富值+成长值)
1个回答
展开全部
创建新的实体,或者使用dynamic输出
追问
用dynamic出错:
如果是后台代码 用foreach可以循环出来,但是在前端就会提示Ojbect不存在Id属性,可能是MVC输出到前端的时候转成了object而没有保留原来对象类型
追答
照理来说应该不会错,因为mvc的ViewBag也是用的dynamic,只在运行的时候才会提示是否正确。以前我使用List进行遍历的时候,也是可以的。你的视图中定义的强类型是什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询