80 votes

Menu déroulant ASP.NET MVC avec une option vide par défaut

Est-il possible d'inclure une option vide par défaut (ou avec du texte) s'il n'y a pas de valeur sélectionnée pour une liste déroulante?

127voto

tvanfosson Points 268301

Le texte ci-dessous préfixera string.Empty à la liste SelectList (ou IEnumerable) spécifiée dans l'élément ViewData ["Menu"]. La sélection aura id et nom MenuID .

 <%= Html.DropDownList( "MenuID",
                      (IEnumerable<SelectListItem>)ViewData["Menu"],
                      string.Empty ) %>
 

Documentation: méthode DropDownList

0voto

PixelPlex Points 40

Cette solution simple a fonctionné pour mon projet mvc5:

en vue:

 @{
     Model.ModelItemsList.Add(new ModelItem{ });
     SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}
 

Ajoutez simplement un nouvel élément au List<> vous souhaitez afficher dans votre affichage. Dans mon cas, j'ai ajouté un "ModelItem" vide à mon List<ModelItem> ModelItemList . Puisque ModelItemID est un Guid, je devais vérifier Guid.Empty dans ma méthode de contrôleur et créer du code. C'est tout.

-7voto

cjbarth Points 838

La solution présentée ici a très bien fonctionné pour moi: http://forums.asp.net/t/1142484.aspx/1

L'idée de base est que vous définissiez la propriété AppendDataBoundItems de votre DropDownList à true et que vous mettiez ensuite un asp:ListItem dans le DropDownList et cela deviendra votre élément par défaut, suivi de tous les éléments liés aux données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X