我的视图(ASP .NET MVC 3)中有IEnumerable<Class1> result
(例如),现在我将它显示为两列:
<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。
答案 0 :(得分: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 :(得分: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>
我无法得到更好的东西