按行保存数据

时间:2018-01-10 01:37:44

标签: c# asp.net-mvc

我在表格中有一个输入表。在每行的最后一列有保存按钮。每次用户单击“保存”按钮时,它将保存相应的列。这是我的代码:

   <form action="@Url.Action("UpdateStaff", "Staff")" id="frmUpdateStaff" method="post">
    <div class="table-responsive">

        <table class="table table-hover table-sm table-striped">
            <thead>
                <tr>
                    <th>
                        No
                    </th>
                    <th>
                        StaffNo
                    </th>
                    <th>
                        Shift
                    </th>
                    <th>
                    </th>
                </tr>
            </thead>
            <tbody>
                @if (Model.Count() > 0)
                {
                    var i = 0;

                    foreach (var item in Model)
                    {
                        i += 1;
                        <tr>
                            <td>@i</td>
                            <td>
                                @Html.DisplayFor(modelItem => item.StaffNo)
                            </td>
                            <td>
                                <select class="form-control input-sm" id="StaffShift" name="StaffShift" value="@item.StaffShift">
                                    <option value="0" @(item.StaffShift== HMS.Domains.StaffShift.Morning? "selected" : "")>Morning</option>
                                    @*<option value="1" @(item.StaffShift== HMS.Domains.StaffShift.Evening? "selected" : "")>Evening</option>*@

                                </select>
                            </td>

                            <td>
                                <input type="text" class="form-control input-sm" name="StaffNo" id="StaffNo" value=@item.StaffNo>
                                <button type='submit' class='btn btn-primary btn-xs' data-toggle="tooltip" title="Save"><span class="glyphicon glyphicon-floppy-disk"></span></button>

                            </td>
                        </tr>
                    }
                }
                else
                {
                    <tr>
                        <td colspan="12"><div align="center">No records found</div></td>
                    </tr>
                }
            </tbody>
        </table>

    </div>
</form>

我创建了名为StaffNo的输入来存储模型的主键。当用户点击save按钮时,它应发送相应的StaffNo。它实际上在视图中显示正确的值。但是当我保存行时,StaffNo在控制器中始终具有值1。它实际上是第一行数据。

1 个答案:

答案 0 :(得分:0)

据我所知,您正试图在MVC模型中保存一组记录。

尝试命名控件,如下所示:

<input type="hidden" class="form-control input-sm" name="StaffNo[@i]" id="StaffNo" value=@item.StaffNo>

然后将其提交给控制器。