2列布局循环通过MVC c#模型实现
本文关键字:模型 实现 MVC 布局 循环 2列 | 更新日期: 2023-09-27 18:19:02
我试图创建一个2列引导布局与动态数据来自MVC模型,使用Razor。目标是在循环完成之前,每列中都有唯一的数据。下面的代码在两列中重复相同的数据。我需要什么逻辑才能使它工作
@{
int i=1;
foreach (var item in Model)
{
<div class="row">
<div class="col-md-6">
<input type="checkbox" checked="@item.Checked" />
@item.Description
</div>
<div class="col-md-6">
<input type="checkbox" checked="@item.Checked" />
@item.Description
</div>
</div>
i++;
}
}
您需要在每个列上迭代项,以便在每个列中获得不同的项。一种方法是跟踪"偶数"answers"奇数"迭代,并在此基础上显示项目。
<div class="row">
int cnt1 = 0;
foreach (var item in Model)
{
if(cnt1 % 2 == 0) {
<div class="col-md-6">
<input type="checkbox" checked="@item.Checked" />
@item.Description
</div>
}
cnt1++;
}
int cnt2 = 0;
foreach (var item in Model)
{
if(cnt2 % 2 != 0) {
<div class="col-md-6">
<input type="checkbox" checked="@item.Checked" />
@item.Description
</div>
}
cnt2++;
}
</div> //end row
另一种实现方法是在控制器中将项目划分为2个列表,并迭代列表1的第一列和列表2的第二列。
对于生成的解决方案,您甚至可以在单个foreach循环中完成。它会更快,因为你只迭代一次循环。
<div class="row">
@{int a = 0; }
@foreach (var auhtor in authors)
{
if (a % 2 == 0)
{
<div class="col-sm-6">
@Html.ActionLink(auhtor, "Author", new { id = auhtor }, new { @class = "btn text-primary" })
</div>
}
else
{
<div class="col-sm-6">
@Html.ActionLink(auhtor, "Author", new { id = auhtor }, new { @class = "btn text-primary" })
</div>
}
a++;
}
</div>