2014-02-06 26 views
6

我是MVC C#的新手。C#在前面排序

這是一個準備就緒的工作代碼(工作代碼的一部分)。

@foreach (var item in Model) 
{    
    <div style="height: 200px; "> 
     @Html.Raw(@item.Description) 
    </div> 
} 

問題是說明頁面上沒有顯示正確的順序是。所以,<div>的順序應該略有不同。

如何修改代碼使其正常工作?

Description字段的順序應按Order列排序。在System.Linq的命名空間上的IEnumerable

+2

你能不能只需在您的控制器中將它發送到頁面之前訂購它? –

回答

16

使用OrderBy擴展方法

@foreach (var item in Model.OrderBy(i => i.Order)) 
{    
    <div style="height: 200px; "> 
     @Html.Raw(@item.Description) 
    </div> 
} 
+2

不要忘了在你的web.config中添加:'。 – Max

+3

這會工作,但一般與MVC角色的觀點是隻顯示數據。 IMO訂購要顯示的項目後面的邏輯應由控制器處理。 (你會''.OrderBy'那裏。) –

+0

謝謝@Guillaume –

4

可以使用LINQ的排序依據擴展方法

@foreach (var item in Model.OrderBy(i => i.Order)) 
{ 
} 
+0

你打敗了我;) – sander

+1

紀堯姆太快了! ;-) – Liath

2

直接使用排序依據

@foreach (var item in Model.OrderBy(i => i.Order)) 
{    
    <div style="height: 200px; "> 
     @Html.Raw(@item.Description) 
    </div> 
}