2列布局循环通过MVC模型c#

时间:2015-10-23 15:01:15

标签: c# asp.net-mvc twitter-bootstrap

我尝试使用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++;
}

}

2 个答案:

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