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