私はIEnumerable<User>
のビューを持っており、すべてのユーザーに対して、ページの下部に保存ボタンを備えたエディタをポンピングします。投稿アクションはIEnumerable<User>
ですが、なんらかの理由でこの値は常にnullです。私はそれは、単一のエンティティとだけで正常に動作として保存する方法が働く知っASP.NET MVC3を使用して複数のエンティティを保存する
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");
}
:ここ
は(短縮)
@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>
}
私の行動私の見解です。 'users'がnullのため、ループにエラーがスローされます。あなたはこの例のようにエディタのHTMLヘルパーを使用する必要があります
モデルバインダーは、エディターの使用方法とhtmlヘルパーの表示方法のためにコレクションを送信していることを認識しません。 –