gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:30:21 24 4
gpt4 key购买 nike

这看起来应该很容易,但我尝试了三四种方法(但没有成功)。

我只是想将查询结果放入 View 袋中并显示它。

我尝试将模型对象列表放入 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.Infrastruct.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.Infrastruct.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;

关于entity-framework - 在 viewbag 中传递查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com