【问题标题】:How do I use a @Html.ActionLink inside a for loop如何在 for 循环中使用 @Html.ActionLink
【发布时间】:2015-01-20 09:16:47
【问题描述】:

如何使用 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>
                }

【问题讨论】:

    标签: asp.net-mvc html.actionlink


    【解决方案1】:

    使用Model[i]:

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

    【讨论】:

    • @Zabavsky,很抱歉在旧帖子上发帖,但是我们如何通过这种方法传递整个模型? ,我尝试了 new { obj=Model[i] } 但它不起作用
    【解决方案2】:

    您已经步入正轨,只是编辑部分您不知道如何完成。

    您正在处理一个项目列表,在您的场景中,您需要像访问数组一样访问每个单独的项目,即使用索引字段。

    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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-06
      • 2014-11-01
      • 2017-05-24
      • 2018-12-14
      • 2012-10-08
      • 2019-09-18
      • 2022-01-26
      • 2015-05-04
      相关资源
      最近更新 更多