.NET三列

时间:2011-04-20 10:03:23

标签: asp.net asp.net-mvc linq

我的视图(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。

2 个答案:

答案 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>

我无法得到更好的东西