我有一个引入用户信息的模型。我想以表格形式提交该信息,但是无论列表中有多少项,我都无法提交信息。只会提交第一个。
@using (Html.BeginForm("Action", "Controller", FormMethod.Post))
{
<table>
foreach(var item in Model)
{
<tr>
<td>@Model.UserName</td>
<td>@Html.TextBoxFor(a => Model.LoginName})</td>
<td>@Html.TextBoxFor(a => Model.EmployeeNumber})</td>
<input type="submit" value="Submit">
</tr>
}
</table>
}
其他所有方法都可行,我检查了控制器,并看到在提交时传递了第一个参数。该列表是从数据库中填充的。我已经研究过使用SingleOrDefault(),但在这种情况下我认为这不起作用。
答案 0 :(得分:1)
要只提交第一个迭代值,您可以使用for循环将第一个索引模型仅放在表单中,否则不行。
if(Model!=null){
for (int i = 0; i < Model.Count; i++)
{
//Form for 1st model only
if(i==0){
@using (Html.BeginForm("Action", "Controller", FormMethod.Post))
{
<table>
<tr>
<td>@Model[i].UserName</td>
<td>@Html.TextBoxFor(a => Model[i].LoginName})</td>
<td>@Html.TextBoxFor(a => Model[i].EmployeeNumber})</td>
<input type="submit" value="Submit">
</tr>
</table>
}
}
else{
<table>
<tr>
<td>@Model[i].UserName</td>
<td>@Html.TextBoxFor(a => Model[i].LoginName})</td>
<td>@Html.TextBoxFor(a => Model[i].EmployeeNumber})</td>
<input type="submit" value="Submit">
</tr>
</table>
}
}
}