如何在for循环中使用@ Html.ActionLink

时间:2015-01-20 09:16:48

标签: asp.net-mvc html.actionlink

如何通过使用for循环将PGId的值传递给控制器​​。我想在我的情况下只使用for循环

当我使用for循环它不能正常工作:

            for (int i = 0; i < Model.Count; i++)
            {
                <tr>
                    <td>
                        @Html.DisplayFor(m => m[i].PGId)
                        @Html.HiddenFor(m => m[i].PGId)
                    </td>
                    <td>
                        @Html.ActionLink("Edit", "Edit", // pass PGId from here ???)
                    </td>
                </tr>
            }

当我使用foreach循环时,我的代码工作正常

                foreach (var item in Model)
                {
                    <tr>
                        <td>
                            @Html.DisplayFor(modelItem => item.PGId)
                        </td>
                        <td>
                            @Html.ActionLink("Edit", "Edit", new { id = item.PGId})
                        </td>
                    </tr>
                }

2 个答案:

答案 0 :(得分:4)

使用Model[i]

for (int i = 0; i < Model.Count; i++)
{
    <tr>
        ...
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = Model[i].PGId })
        </td>
    </tr>
}

答案 1 :(得分:0)

你正在进行中,这只是你不知道如何完成的编辑部分。

您正在处理项目列表,在您的方案中,您将需要访问每个项目,例如访问数组,即使用索引字段。

for (int i = 0; i < Model.Count; i++)
{
     <tr>
          <td>
               @Html.DisplayFor(m => m[i].PGId)
               @Html.HiddenFor(m => m[i].PGId)
          </td>
          <td>
               @Html.ActionLink("Edit", "Edit", new { id = Model[i].PGId })
          </td>
     </tr>
}

结果HTML代码如下所示:

<tr>
     <td>
          10001
          <input name="[0].PGId" type="hidden" value="10001" />
     </td>
     <td>
          <a href="/Home/Edit/10001">Edit</a>
     </td>
</tr>
<tr>
     <td>
          10002
          <input name="[0].PGId" type="hidden" value="10002" />
     </td>
     <td>
          <a href="/Home/Edit/10002">Edit</a>
     </td>
</tr>