CheckBoxListForプラグイン使い方http://www.codeproject.com/Tips/613785/How-to-Use-CheckBoxListFor-With-ASP-NET-MVC-4
使い方の補足上の使い方のサンプルで出力されるチェックボックスリストのHTML<input id="PostedFruits_FruitIds14" name="PostedFruits.FruitIds" type="checkbox" value="1"></input> <label for="PostedFruits_FruitIds14">Apple</label> <input id="PostedFruits_FruitIds15" name="PostedFruits.FruitIds" type="checkbox" value="2"></input> <label for="PostedFruits_FruitIds15">Banana</label> <input id="PostedFruits_FruitIds16" name="PostedFruits.FruitIds" type="checkbox" value="3"></input> <label for="PostedFruits_FruitIds16">Cherry</label> CheckBoxListFor() @Html.CheckBoxListFor(model => model.PostedFruits.FruitIds, // (1)
model => model.AvailableFruits, // (2)
fruit => fruit.Id, // (3)
fruit => fruit.Name, // (4)
model => model.SelectedFruits, // (5)
Position.Horizontal)
コントローラーでユーザ入力値postedFruitsからCheckBoxListFor()へ渡す為の値をセットアップする /// <summary>
/// for setup view model, after post the user selected fruits data
/// </summary>
private FruitViewModel GetFruitsModel(PostedFruits postedFruits)
{
// setup properties
var model = new FruitViewModel();
var selectedFruits = new List<Fruit>();
var postedFruitIds = new string[0];
if (postedFruits == null) postedFruits = new PostedFruits();
// if a view model array of posted fruits ids exists
// and is not empty,save selected ids
if (postedFruits.FruitIds != null && postedFruits.FruitIds.Any()) {
postedFruitIds = postedFruits.FruitIds;
}
// if there are any selected ids saved, create a list of fruits
if (postedFruitIds.Any()) {
selectedFruits = FruitRepository.GetAll()
.Where(x => postedFruitIds.Any(s => x.Id.ToString().Equals(s)))
.ToList();
}
//setup a view model
model.AvailableFruits = FruitRepository.GetAll().ToList();
model.SelectedFruits = selectedFruits;
model.PostedFruits = postedFruits;
return model;
}
チェックボックスリストをテーブルタグで整形するhttp://www.jjask.com/261808/mvc-4-razor-checkboxlistfor-formatting-issue 参考 |
|