MVCにデュアル リスト ボックスがあります。選択したリストボックス内のすべてのアイテムの ID をサーバーに送信する必要があります。モデルには 3 つのプロパティが定義されています
IEnumerable<SelectListItem> AvailItems {get;set;}
IEnumerable<SelectListItem> SelectedItems {get;set;}
string SelectedItemIds {get;set;}
隠しフィールドとして異なる名前とavailItems
プロパティを持つリストボックスを作成しました。ユーザーがリストボックスに項目を追加/削除すると、Javascript は隠しフィールドを更新します。httpost では、リストボックスの名前が変更されたためにのみ受信しますが、これは予期された動作です。selectedItems
SelectedItemIds
selectedItemIds
問題は、モデルが無効であるか、何らかの例外が発生し、returnView(model)
が実行され、リストボックスに空の値が入力されているがhiddenfield
、変更された項目の値が含まれている場合です。そして、ユーザーが再びページを送信すると、hiddenfield
投稿された項目の値はデータベースから取得されます。hiddenfield
非jsユーザーがページを送信しても害がないため、送信前にすべてのアイテムを選択する代わりに(javascriptを使用して)使用するこのアプローチに従いました。からの値がhiddenfield
取得されます。
上記の状況に対処する方法のアイデアはありますか?