2014-06-18 31 views
0

我想傳遞我的查詢結果,然後我想在我的Web表單上迭代。這是我的名單將Linq列表傳遞給MVC Web表單

var recentGames = game.OrderByDescending(c => c.OutcomeDateTime) 
            .Take(3); 

現在我試圖把這個ViewData的

ViewData["Elements"] = recentGames; 

然後試圖循環雖然計算機[ 「元素」]在我查看

List<Games> t = (List<Games>)ViewData["Elements"]; 

recentGames有遊戲類的屬性,但我無法在我的視圖(網頁表單)中初始化遊戲類並獲取錯誤。有沒有更好的方式來傳遞列表來查看,然後遍歷循環打印簡單?

回答

1

您可以顯示您的收藏像

@foreach(var item in ViewData["Elements"] as IEnumerable<Game>) { 
    // Display properties of Game e.g. 
    @Html.DisplayFor(m => item.MyProperty) 
} 
+0

我想打印我的recentGames列表你能告訴我該怎麼做嗎?我將我的列表傳遞到視圖中] – user3750312

+0

您是否嘗試過上述代碼(只需將「MyProperty」替換爲「遊戲」類中其中一個屬性的實際名稱 –

+0

我正在獲取Object reference沒有設置爲一個對象的實例。 – user3750312

0

recentGames的類型不是List<Games>。它可以是IQueryable<Games>IEnumerable<Games>,具體取決於game的類型。

一個更好的方法是,recentGames不是一個列表,它是一個查詢。

您需要做的是在查詢的末尾添加.ToList()以將其變爲列表。

像這樣:

var recentGames = 
    game 
     .OrderByDescending(c => c.OutcomeDateTime) 
     .Take(3) 
     .ToList(); 
+0

然後屬性我怎樣才能使用forach環路我的網頁表單打印? – user3750312

+0

@ user3750312 - 很抱歉,我不是MVC網頁開發人員。我只是可以看到你正在嘗試的演員的問題。 – Enigmativity