entity-framework – 在viewbag中传递查询结果
这看起来应该很容易,但我已经尝试了三到四种方法(但无济于事).
我只是想在查看包中放置一个查询结果并显示它. 我试过在ViewBag中放置一个模型对象列表: var mesg = from MSG in lemondb.Messages where MSG.msg == Membership.GetUser().ToString() select MSG; ViewBag.messages = MSG; 然后我尝试用.cshtml吐出来: var message = (List<LemonTrader.Models.Message>)ViewBag.messages; // <--- fails here because it is a string foreach ( var MSG in message ) { @Html.Label(MSG.msg)<br /> } 但它说:
所以我似乎正在使用错误的模板.我如何吐出System.Entity.Infrastructure.DbQuery? 我也尝试将结果作为字符串列表通过Viewbag传递. (这是一种更糟糕的方式吗?) var mesg = from MSG in lemondb.Messages where MSG.msg == Membership.GetUser().ToString() select MSG.msg; ViewBag.messages = mesg; 并将其作为字符串列表吐出: foreach (var atext in ViewBag.messages as List<string>) { // gets hung up on foreach here (why???) @Html.Label( atext ) } 我得到了这个:
它指向“foreach”关键字. 这是否意味着没有消息?或者是什么? 我希望有一个教程展示如何将查询结果放在ViewBag中以及如何将它们取出来!我已经看到了返回object.ToList()的教程,不考虑任何类型的“where”机制,但没有示例提取一些相关条目并显示它们. 解决方法
尝试
ViewBag.messages = MSG.ToList(); 此外,System.Data.Entity.Infrastructure.DbQuery实现IEnumerable(http://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbquery(v=vs.103).aspx),所以这也应该工作: var message = (IEnumerable<LemonTrader.Models.Message>)ViewBag.messages; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net核心 – 无法在IISExpress中启动ASP.NET Core RC2 W
- asp.net – 实体框架 – Where子句
- asp.net – 在Entity Framework中的2个语句中锁定表
- asp.net – 以编程方式在ASPX页面中设置’visible’属性的值
- asp.net-mvc-3 – 在仅HTTPS站点上对HTTP HEAD请求的正确响
- asp.net – 总是显示FooterTemplate,甚至没有数据
- asp.net – 如果Elmah无法访问数据库以记录异常,该怎么办?
- asp.net – 获取Gridview的Selected行
- asp.net-mvc – 在哪里得到的Microsoft.Web.Mvc.dll
- asp.net-mvc – 在AccountController之外访问UserManager