モデル内のプロパティをループし、多数のチェックボックスを表示するビューがあります。
これらのチェックボックスは親によってグループ化されており、チェックボックスの各グループをラップする div を表示/非表示にするリンクがあります (コードに表示される JavaScript 折りたたみ関数)。
問題は、これらのチェックボックス/グループがモデルにバインドされており、ポストバック後にモデルが再構築され、エンドユーザーがグループを折りたたんだ (jquery.hide() を呼び出す) 場合、グループは折りたたまれなくなります。
MVC でこれらの css の変更を永続化する正しい方法は何ですか? それらの可視性を追跡する隠しフィールドが必要ですか? そのグループを表示するかどうかを示す新しいプロパティを持つようにモデル オブジェクトを更新する必要がありますか?
ウェブフォームから来ています...私の初心者を許してください。
@for (int y = 0; y < Model.SearchControls.Count; y++)
{
<div style="margin-top: 3px;">
<h2 style="cursor:pointer;" onclick="javascript:Collapse(@y);">@Html.Label(Model.SearchControls[y].DisplayText)</h2>
</div>
<div id="@string.Format("domainDiv{0}", @y)" style="display:none;">
@for (int z = 0; z < Model.SearchControls[y].DomainControl.Domains.Count; z++)
{
@Html.CheckBoxFor(x => x.SearchControls[y].DomainControl.Domains[z].Checked)
@Html.Label(" " + Model.SearchControls[y].DomainControl.Domains[z].DomainName)
@Html.HiddenFor(x => x.SearchControls[y].DomainControl.Domains[z].DomainName)
@Html.HiddenFor(x => x.SearchControls[y].DomainControl.Domains[z].DomainID)
<br />
}
</div>
}