這似乎應該是如此簡單,但我已經嘗試過三種或四種方法來做到這一點(但無濟於事)。在查看包中傳遞查詢結果
我只是試圖把查詢結果放入一個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 />
}
但它說:
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」機制,但沒有示例來提取一些相關條目並顯示它們。
真棒。謝謝! – micahhoover 2011-05-21 16:17:17
出於某種原因,當我使用這一行:「ViewBag.messages = mesg.ToList();」我得到這個錯誤:「LINQ to Entities無法識別方法'System.String ToString()'方法,並且此方法無法轉換爲存儲表達式。」 – micahhoover 2011-05-26 07:12:53
我在「選擇味精」和「選擇MSG.mesg」時看到此錯誤。當我這樣做時也得到這個錯誤:「ViewBag.messages = mesg.ToString();」 (而不是ToList())。 – micahhoover 2011-05-26 07:26:46