私はMultiSelectListの使用に関する多くの記事を読んでいますが、DropDownListForで何が問題になっているのかまだ理解していません。私は同じView、ViewModelとうまく動作するデータを持つListBoxForを持っています。 ListBoxForにはないoptionLabelパラメータがあるため、DropDownListForを使用します。なぜDropDownListForはSubmitの後に複数選択を失うのですか?しかしListBoxForはしません。
ビューが最初に読み込まれると、DropDownListForとListBoxForの両方が複数の選択された項目を表示します。
[送信]ボタンをクリックすると、選択した項目のコレクションはバックコントローラのアクションに大丈夫掲載されており、ビューはListBoxForはまだ両方の選択項目を示したが、DropDownListForは一つだけ選択した項目を示していると更新されます。
コントローラのアクションは次のようにMultiSelectListを構築されています
vm.TasksFilterGroup.Assignees = new MultiSelectList(employees, "Id", "FullName", new string[] { "51b6f06a-e04d-4f98-88ef-cd0cfa8a2757", "51b6f06a-e04d-4f98-88ef-cd0cfa8a2769" });
ビューのコードは次のようになります。
<div class="form-group">
<label>ListBoxFor</label>
@Html.ListBoxFor(m => m.TasksFilterGroup.SelectedAssignees, Model.TasksFilterGroup.Assignees, new { @class = "form-control", multiple = "multiple" })
</div>
<div class="form-group">
<label>DropDownListFor</label>
@Html.DropDownListFor(m => m.TasksFilterGroup.SelectedAssignees, Model.TasksFilterGroup.Assignees, new { @class = "form-control", multiple = "multiple" })
</div>
なぜDropDownListForは、複数選択を失うん後に提出ListBoxForはありませんか?
この徹底した知識豊富な応答がはるかに高く評価されるを使用しています。ありがとうございました。 – RJBreneman
これは非常に深い答えです。非常に洞察力のある。 – CodingYoshi