我将一个DataView对象(一个int列表)传递给一个视图。我的页面上还有一个foreach循环,我想在其中执行以下操作:
<% foreach (var item in Model) { %>
<% if ((ViewData["listOfIDs"] as List<int>).ElementAt(i) == item.ID){
<p>Display this</p>
{ %>
{ %>
我有两个问题。首先,我必须得到foreach循环的迭代次数,而不将其转换为for循环。其次,我必须在if语句中写一个有效的表达式。
我很乐意使用for循环,但我不知道如何重写foreach循环中的行,如下所示:
<% foreach (var item in Model) { %>
<tr>
<td>
<%: Html.DisplayFor(modelItem => item.project.name) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => item.name) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => item.priority) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => item.points) %>
</td>
<td>
<%: Html.ActionLink("Eidt", "Edit", new { id=item.card_id }) %> |
<%: Html.ActionLink("Details", "Details", new { id=item.card_id }) %> |
<%: Html.ActionLink("Delete", "Delete", new { id=item.card_id }) %>
</td>
</tr>
<% } %>
我怎样才能做到这一点?
答案 0 :(得分:1)
<% foreach (var item in Model) { %>
<% if ((ViewData["listOfIDs"] as List<int>).ElementAt((ViewData["listOfIDs"] as List<int>).IndexOf(item)) == item.ID){
<p>Display this</p>
{ %>
{ %>
讨厌,缓慢,难以理解,容易破碎。
<% for (int i=0; i < Model.Count; i++) { %>
<tr>
<td>
<%: Html.DisplayFor(modelItem => Model[i].project.name) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => Model[i].name) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => Model[i].priority) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => Model[i].points) %>
</td>
<td>
<%: Html.ActionLink("Eidt", "Edit", new { id=Model[i].card_id }) %> |
<%: Html.ActionLink("Details", "Details", new { id=Model[i].card_id }) %> |
<%: Html.ActionLink("Delete", "Delete", new { id=Model[i].card_id }) %>
</td>
</tr>
<% } %>