2011-04-20 13 views
1

我有IEnumerable<Class1> result(例如)在我看來(ASP .NET MVC 3),現在我展示它像兩列:.NET三列

<div id="left_column"> 
@foreach (PeopleTale pt in ((IEnumerable<PeopleTale>)ViewBag.PeopleTales).Where((x, i) => i % 2 == 1)) 
{ 
    <div class="item"> 
     <a href="#">@pt.NameAn</a> 
    </div> 
} 
</div> 

<div id="center_column"> 
@foreach (PeopleTale pt in ((IEnumerable<PeopleTale>)ViewBag.PeopleTales).Where((x, i) => i % 2 == 0)) 
{ 
    <div class="item"> 
     <a href="#">@pt.NameAn</a> 
    </div> 
} 
</div> 

所以,漂亮的,但我有三列在我的HTML頁面上。 LINQ可以在哪裏顯示我的三列數據?不知道如何用簡單而美麗的解決方案= \

<div id="left_column">  
</div> 

<div id="center_column"> 
</div> 

<div id="right_column"> 
</div> 

我的數據是不固定的做到這一點,所以我不知道有多少我能跳過並採取。 Thx。

回答

2

還要考慮使用局部視圖(我用IEnumerable<PeopleTale>爲模型在這裏,爲了更好的可讀性):

<div id="left_column"> 
@Html.Partial("PeopleTalesList", Model.Where((pt, i) => i % 3 == 2)) 
</div> 
<div id="center_column"> 
@Html.Partial("PeopleTalesList", Model.Where((pt, i) => i % 3 == 1)) 
</div> 
<div id="right_column"> 
@Html.Partial("PeopleTalesList", Model.Where((pt, i) => i % 3 == 0)) 
</div> 

PeopleTalesList.cshtml局部視圖文件將是這樣的:

@model IEnumerable<PeopleTale> 
@foreach (var pt in Model) 
{ 
<div class="item"> 
    <a href="#">@pt.NameAn</a> 
</div> 
} 
1

你可以做的正是你正在做

<div id="left_column"> 
@foreach (PeopleTale pt in ((IEnumerable<PeopleTale>)ViewBag.PeopleTales).Where((x, i) => i % 3== 2)) 
{ 
<div class="item"> 
    <a href="#">@pt.NameAn</a> 
</div> 
} 
</div> 

<div id="center_column"> 
@foreach (PeopleTale pt in ((IEnumerable<PeopleTale>)ViewBag.PeopleTales).Where((x, i) => i % 3== 1)) 
{ 
<div class="item"> 
    <a href="#">@pt.NameAn</a> 
</div> 
} 
</div> 


<div id="right_column"> 
@foreach (PeopleTale pt in ((IEnumerable<PeopleTale>)ViewBag.PeopleTales).Where((x, i) => i % 3== 0)) 
{ 
<div class="item"> 
    <a href="#">@pt.NameAn</a> 
</div> 
} 
</div> 

什麼我不能得到更好的東西

+1

如果它是一個昂貴的查詢,緩存PeopleTale集合可能是有意義的,因爲您將迭代它三次。 – 2011-04-20 10:19:46