加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

entity-framework – 在viewbag中传递查询结果

发布时间:2020-12-16 07:03:31 所属栏目:asp.Net 来源:网络整理
导读:这看起来应该很容易,但我已经尝试了三到四种方法(但无济于事). 我只是想在查看包中放置一个查询结果并显示它. 我试过在ViewBag中放置一个模型对象列表: var mesg = from MSG in lemondb.Messageswhere MSG.msg == Membership.GetUser().ToString()select MS
这看起来应该很容易,但我已经尝试了三到四种方法(但无济于事).

我只是想在查看包中放置一个查询结果并显示它.

我试过在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 />
}

但它说:

Cannot convert type
‘System.Data.Entity.Infrastructure.DbQuery’
to
‘System.Collections.Generic.List’

所以我似乎正在使用错误的模板.我如何吐出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 )   
}

我得到了这个:

Object reference not set to an
instance of an object.

它指向“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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读