我想更新用户列表,在我的控制器中,我已经返回了用户列表
return View("usersList", user);
并且在视图中我使用
@using (Html.BeginForm("usersList", "UserManagement"))
{
@Html.EditorFor(model => model, "tbl_UserList");
}
在编辑器模板中我使用&#t; tbl_UserList.cshtml'如下
@model IList<tbl_Users>
@using (Html.BeginForm())
{
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model[0].FirstName)
</th>
<th>
@Html.DisplayNameFor(model => model[0].LastName)
</th>
<th>
@Html.DisplayNameFor(model => model[0].Email)
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.EditorFor(modelitem => item.FirstName)
</td>
<td>
@Html.EditorFor(modelItem => item.LastName)
</td>
<td>
@Html.EditorFor(modelItem => item.Email)
</td>
</tr>
}
</table>
<input id="subButton" type="submit" value="submit" title="submit data" />
}
并在控制器中
[HttpPost]
public ActionResult UserList(List<tbl_Users> users)
{
//..
}
这里控制器中的用户为空,我该如何解决这个问题&gt; 感谢
答案 0 :(得分:2)
将EditorTemplate
更改为
@model tbl_Users
<tr>
<td>@Html.EditorFor(m => m.FirstName)</td>
<td>@Html.EditorFor(m => m.LastName)</td>
<td>@Html.EditorFor(m => m.Email)</td>
</tr>
并将其重命名为tbl_Users.cshtml
然后在主视图中
@model IList<tbl_Users>
@using (Html.BeginForm("usersList", "UserManagement"))
{
<table>
<thead>
<tr>
<td>@Html.DisplayNameFor(m => m.FirstName)</td>
....
</tr>
</thead>
<tbody>
@Html.EditorFor(m => m); // do not specify a name
</tbody>
</table>
}
请注意,您当前的foreach
循环正在生成重复的id
属性(无效的html)和重复的name
属性,这些属性不会绑定到集合(在了解之前和之后检查html) )。