チェックボックスのリスト

チェックボックスをリストで扱う。

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) が必要だったようだけど?今は不要?

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2014-02-27 (木) 18:58:20