web-dev-qa-db-fra.com

Liste déroulante de sélection multiple ASP.NET MVC

J'utilise le code suivant pour permettre à l'utilisateur de sélectionner plusieurs emplacements sur le formulaire.

@Html.DropDownListFor(m => m.location_code, Model.location_type, new { @class = "form-control", @multiple = "multiple" }).

location_code est un List<int> et location_type est List<SelectListItem> rempli de données.

Le code me renvoie les valeurs sélectionnées dans le contrôleur, mais lorsque l'utilisateur clique sur le bouton Modifier, l'objet transmis n'affiche pas les valeurs sélectionnées mais affiche à la place la liste déroulante initialisée normale sans rien sélectionné.

Ce que je veux réellement, c'est qu'une fois que l'utilisateur soumet le formulaire (y compris les multiples valeurs sélectionnées), il accède à une page où l'utilisateur confirme si les détails sont corrects, sinon il appuie sur le bouton Modifier et l'objet est à nouveau transmis au contrôleur. il doit afficher les multiples valeurs sélectionnées. Les autres champs se comportent correctement.

Une idée à ce sujet?

17
knowledgeseeker

À votre avis:

@Html.ListBoxFor(m => m.location_code, Model.location_type)

C'est tout ce dont vous avez besoin. Vous utilisez un contrôle ListBox, il s'agit donc déjà d'une liste de sélection multiple.

Ensuite, dans votre contrôleur, vous pouvez obtenir les éléments sélectionnés comme ceci:

[HttpPost]
public string SaveResults(List<int> location_code)
{

    if (location_code!= null)
    {
        return string.Join(",", location_code);
    }
    else
    {
        return "No values are selected";
    }
}
25
Panayotis