私はタイプの強いタイプビューを持っています
List<List<MyViewModelClass>>
外側のリストには、常に2つのリストがありList<MyViewModelClass>
ます。2つの外側のリストのそれぞれについて、チェックボックスのグループを表示したいと思います。各セットには、任意の数の選択肢があります。
私のビューモデルクラスは次のようになります。
public class MyViewModelClass
{
public Area Area { get; set; }
public bool IsGeneric { get; set; }
public string Code { get; set; }
public bool IsChecked { get; set; }
}
したがって、最終的なビューは次のようになります。
該当するものを選択してください。
選択肢の最初のセット:
- xオプション1
- xオプション2
- xオプション3
- 等
選択肢の2番目のセット:
- x2番目のオプション1
- x2番目のオプション2
- x2番目のオプション3
- x2番目のオプション4
- 等
チェックボックスが表示されMyViewModelClass.Area.Name
、その値がに関連付けられている必要がありますMyViewModelClass.Area.Id
。チェック状態はもちろんに関連していMyViewModel.IsChecked
ます。
質問
チェックボックスを表示するには、どのように使用するHtml.CheckBox()
か、Html.CheckBoxFor()
ヘルパーを使用する必要がありますか?もちろん、ポストバックでこれらの値をサーバーに戻す必要があります。
次のいずれかのようなコントローラーアクションが必要です。
public ActionResult ConsumeSelections(List<List<MyViewModelClass>> data)
{
// process data
}
public ActionResult ConsumeSelections(List<MyViewModelClass> first, List<MyViewModelClass> second)
{
// process data
}
それが物事を簡単にするなら、私は次のような別のビューモデルタイプを作ることができます:
public class Options
{
public List<MyViewModelClass> First { get; set; }
public List<MyViewModelClass> Second { get; set; }
}
また、コントローラーアクションの最初のバージョンを次のように変更します。
public ActionResult ConsumeSelections(Options data)
{
// process data
}