J'ai lu de nombreux articles sur l'utilisation de MultiSelectList et je n'ai pas encore compris ce qui ne va pas avec DropDownListFor. J'ai un ListBoxFor avec le même View, ViewModel et les données qui fonctionnent bien. Je veux utiliser DropDownListFor en raison de son paramètre optionLabel que ListBoxFor n'a pas. Lorsque la vue est chargée pour la première fois, DropDownListFor et ListBoxFor affichent les éléments multiples sélectionnés.Pourquoi DropDownListFor perd-il la sélection multiple après Submit mais pas ListBoxFor?
Lorsque le bouton Soumettre est cliqué, la collection d'éléments sélectionnés est réaffecté à l'action du contrôleur correct et la vue est actualisée avec le ListBoxFor montrant encore les éléments sélectionnés mais le DropDownListFor est montrant qu'un seul élément sélectionné .
L'action du contrôleur est en train de construire la MultiSelectList comme ceci:
vm.TasksFilterGroup.Assignees = new MultiSelectList(employees, "Id", "FullName", new string[] { "51b6f06a-e04d-4f98-88ef-cd0cfa8a2757", "51b6f06a-e04d-4f98-88ef-cd0cfa8a2769" });
Le code Voir ressemble à ceci:
<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>
Pourquoi le DropDownListFor perd la sélection multiple après Déposer mais le ListBoxFor ne le fait pas?
Cette réponse complète et bien informé est très apprécié. Je vous remercie. – RJBreneman
C'est une réponse géniale et approfondie. Très perspicace. – CodingYoshi