- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- dotNet-ASP.NET MVC/Razor/チェックボックスのリスト へ行く。
- 1 (2014-02-27 (木) 09:44:28)
- 2 (2014-02-27 (木) 11:38:17)
チェックボックス
CheckBox Model
public class UserCheckBox { public int UserId { get; set; } public string UserName { get; set; } public bool IsChecked { get; set; } }
Controller
public ActionResult Index(UserViewModel vm) { var userList = _userService.GetuserList().ToList(); var userCBList = userList.Select(u => new UserCheckBox { UserId = u.UserId, UserName = u.userName, IsChecked = false }).ToList(); var vm2 = new UserViewModel { userCBList = userCBList }; return View(vm2); }
View
@using (Html.BeginForm("Index", "Home", null, FormMethod.Get)) { @for (int i = 0; i < Model.UserCBList.Count; i++) { @Html.CheckBoxFor(m => m.UserCBList[i].IsChecked) @Html.DisplayFor(m => m.UserCBList[i].UserName) } <div class="form-buttons"> <input type="submit" value="OK" /> </div> }
- 以上のコードで以下のようなHTMLのチェックボックスが出力される。
<input id="UserCBList_0__IsChecked" name="UserCBList[0].IsChecked" type="checkbox" value="true" /> <input name="UserCBList[0].IsChecked" type="hidden" value="false" />太郎 <input id="UserCBList_1__IsChecked" name="UserCBList[1].IsChecked" type="checkbox" value="true" /> <input name="UserCBList[1].IsChecked" type="hidden" value="false" />花子
- 以前のバージョンのASP.NET MVCは、@Html.HiddenFor(m => m.UserCBList[i].UserId) が必要だったようだけど?今は不要?
参考
- http://stackoverflow.com/questions/16688170/asp-net-mvc-html-checkboxfor
- http://codepaste.net/tuxzx2
- http://stackoverflow.com/questions/6781730/checkboxfor-not-binding-with-nested-objects/6781939#6781939