Ich habe viele Artikel über die Verwendung von MultiSelectList gelesen und muss noch verstehen, was mit meinem DropDownListFor los ist. Ich habe eine ListBoxFor mit der gleichen View, ViewModel und Daten, die gut funktioniert. Ich möchte den DropDownListFor wegen seines optionLabel-Parameters verwenden, den ListBoxFor nicht hat.Warum verliert DropDownListFor die Mehrfachauswahl nach dem Senden, aber die ListBoxFor nicht?
Wenn die Ansicht zum ersten Mal geladen wird, zeigen sowohl DropDownListFor als auch ListBoxFor die mehreren ausgewählten Elemente an.
Wenn die Senden-Schaltfläche geklickt wird, wird die ausgewählten Elemente Sammlung zurück an die Controller Aktion geschrieben in Ordnung und die Aussicht ist aufgefrischt mit der ListBoxFor noch beiden ausgewählten Elemente zeigt aber die DropDownListFor ist nur ein ausgewähltes Element darstellt .
Die Controller-Aktion wird die MultiSelectList wie diese Konstruktion:
vm.TasksFilterGroup.Assignees = new MultiSelectList(employees, "Id", "FullName", new string[] { "51b6f06a-e04d-4f98-88ef-cd0cfa8a2757", "51b6f06a-e04d-4f98-88ef-cd0cfa8a2769" });
The View Code wie folgt aussieht:
<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>
Warum verlieren die DropDownListFor die Mehrfachauswahl nach Senden aber die ListBoxFor nicht?
Diese gründliche und sachkundig Antwort wird sehr geschätzt. Vielen Dank. – RJBreneman
Dies ist eine großartige und eingehende Antwort. Sehr aufschlussreich. – CodingYoshi