在foreach循环中动态显示按钮

时间:2013-09-11 16:57:55

标签: c# asp.net-mvc linq razor

我的foreach循环中有两个按钮。我需要两者都出现,除非它是循环中的第一项或循环中的最后一项。

@foreach (var item in @Model.IPACS_Processes.IPACS_Procedures)
{
    <li class="span6">
        <img src="../../Images/thumbs/doc.png" alt="" class="pull-left" />
        <div class="comment-info">
            <h4>
                <a href="@Url.Action("ViewProcedure", new { id = item.procedureID })" data-original-title="@item.name">
                    @item.name</a></h4>
            <h5>
                <small>Owner: </small> <a href="javascript:void(0);">@item.owner</a></h5>
                <br />
            <p>
            @item.description
            </p>
            <br />
            <p>
                <a href="" class="btn btn-small"><span class="iconfa-double-angle-up icon-white">
                </span>Move Up</a>

                <a href="" class="btn btn-small"><span class="iconfa-double-angle-down"></span>
                    Move Down</a>
            </p>
        </div>
    </li>
    <br style="clear: both;" />
}

我需要“Move Up”按钮可见,除非它是循环中的第一项,然后我需要“Move Down”按钮可见,除非它是循环中的最后一项。

我不确定设置计数迭代器是我唯一的选择,还是有更清洁的方式?

1 个答案:

答案 0 :(得分:1)

您可以简单地设置索引并将其与数组的上限和下限进行比较,或使用数组的Count属性。

像这样。

@{
  int i = 0;

  foreach (var item in Model.IPACS_Processes.IPACS_Procedures)
  {
    <!-- stuff and stuff --!>

    if(i > 0) {
            <a href="" class="btn btn-small"><span class="iconfa-double-angle-up icon-    white">
            </span>Move Up</a>
    }

    if(i < Model.IPACS_Processes.IPACS_Procedures.Count)
    {
            <a href="" class="btn btn-small"><span class="iconfa-double-angle-down">     </span>
                Move Down</a>
    }

    i++;

  }
}