首页 > 解决方案 > MVC 提交按钮始终在 POST 上提交第一条记录详细信息

问题描述

我在 MVC 页面中有一个 foreach 循环。如下所示。但是,当我使用提交按钮提交表单时,它总是提交第一条记录。无法理解为什么会这样。感谢帮助。

@model IEnumerable<DeployModel>
 
 
@using (Html.BeginForm("Index", "Dep", FormMethod.Post))
{
     
        <div class="col-md-11">
            <!-- Modal content-->
            <div class="modal-content">
               
                <div class="modal-body" id="modal-body" style="overflow-y: auto">
              
                    
                    @if (Model != null && Model.Any())
                    {
                         
                        <div>

                            <table class="table table-condensed table-hover table-bordered">
                                <thead>
                                <th>
                                    S1 Name
                                </th>
                                <th>
                                    S2 Name
                                </th>
                                <th>
                                    Old Version
                                </th>
                                <th>
                                    New Version
                                </th>
                                
                                <th>
                                    Status
                                </th>
                                
                                </thead>
                                <tbody>
                                    @foreach (var item in Model)
                                    {
                                        <tr>
                                            <td>
                                                @Html.DisplayFor(o => item.S1)
                                            </td>

                                            <td>
                                                @Html.DisplayFor(o => item.S2)
                                            </td>

                                            <td>
                                                @Html.DisplayFor(o => item.OldVersion)
                                            </td>

                                            <td>
                                                @Html.DisplayFor(o => item.NewVersion)
                                            </td>
                                            <td>
                                                @Html.DisplayFor(o => item.Status)
                                            </td>

                                           
                                            <td>
                                               
                                          <button name="SubmitButton" class="btn action-btn" type="submit" > Submit                                                </button>
                                            </td>
                                             
                                        </tr>
                                    }
                                </tbody>
                            </table>
                        </div>
                    }
                </div>
               
            </div>

        </div>
    </div>

}

我的控制器动作看起来像,但无论按钮单击如何,它总是接收第一条记录。

[HttpPost]
public ActionResult Index(DeployModel deployModel)
{
   //TODO code
}

知道如何解决这个问题吗?

标签: c#asp.net-mvcmodel-view-controllercontroller

解决方案


您必须为每个输入提供不同的名称。

示例

@Html.DisplayFor(o => item.S1, new { name = "input1" })

推荐阅读