保存多個實體我有一個觀點,即需要在IEnumerable<User>
併爲每一位用戶就泵出在頁面底部有一個保存按鈕編輯器。我的帖子操作採用IEnumerable<User>
,但由於某些原因,此值始終爲空。使用ASP.NET MVC3
這是我的看法(縮短)
@model IEnumerable<User>
@using (Html.BeginForm("ViewUsers", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Username)
</td>
<td>
@Html.EditorFor(modelItem => item.IsAdmin)
</td>
<td>
@Html.EditorFor(modelItem => item.GoldCoins)
</td>
</tr>
}
<tr><td><input type="submit" value="Save"/></td></tr>
}
我的行動:
public ActionResult ViewUsers()
{
IEnumerable<User> users = userService.GetUsers();
return View(users.ToList());
}
[HttpPost]
public ActionResult ViewUsers(List<User> users)
{
foreach (User u in users)
{
userService.Save(u);
}
return RedirectToAction("ViewUsers");
}
我知道保存方法的工作,因爲它與單一實體就好作品。它會在循環中拋出錯誤,因爲'users'爲空。
模型綁定不知道您發送它,因爲你是如何使用的編輯器和顯示HTML輔助的集合。 –