我在表格中有一个输入表。在每行的最后一列有保存按钮。每次用户单击“保存”按钮时,它将保存相应的列。这是我的代码:
<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
。它实际上是第一行数据。
答案 0 :(得分:0)
据我所知,您正试图在MVC模型中保存一组记录。
尝试命名控件,如下所示:
<input type="hidden" class="form-control input-sm" name="StaffNo[@i]" id="StaffNo" value=@item.StaffNo>
然后将其提交给控制器。