我尝试使用Razor创建一个带有来自MVC模型的动态数据的2列引导程序布局。目标是在每个列中都有唯一的数据,直到循环完成。以下代码在两列中重复相同的数据。我需要什么逻辑才能使这项工作
@{
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++;
}
}
答案 0 :(得分:3)
您需要在每列上迭代您的项目,以便在每列中获取不同的项目。一种方法是跟踪&#34;甚至&#34;和&#34;奇怪&#34;基于此的迭代和显示项目。
SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(this);
String themeName = pref.getString("prefSyncFrequency3", "Theme1");
if (themeName.equals("Africa")) {
setTheme(R.style.AppTheme);
} else if (themeName.equals("Colorful Beach")) {
//Toast.makeText(this, "set theme", Toast.LENGTH_SHORT).show();
setTheme(R.style.beach);
} else if (themeName.equals("Abstract")) {
//Toast.makeText(this, "set theme", Toast.LENGTH_SHORT).show();
setTheme(R.style.abstract2);
} else if (themeName.equals("Default")) {
setTheme(R.style.defaulttheme);
}
实现此目的的另一种方法是将项目划分为控制器中的2个列表,并在列表1中迭代第一列,列出2列表第二列。
答案 1 :(得分:0)
关于delvin康乃馨解决方案,您甚至可以在单个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>