Liste déroulante 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?

Le texte ci-dessous appenda ssortingng.Empty à la liste SelectList (ou IEnumerable) spécifiée dans l’élément ViewData [“Menu”]. Le MenuID aura l’identifiant et le nom MenuID .

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

Documentation: Méthode DropDownList

Par exemple:

  Controller : private void InitScreenInfoCollate() { IEnumerable listbrd = ibrandRepository.GetItemsByUsercode(""); ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null); } View : @Html.DropDownList("Brands", null, ssortingng.Empty, new { @class = "form-control"}) 

Résultat :

image en ligne

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 à la List<> vous souhaitez afficher dans votre vue. Dans mon cas, j’ai ajouté un “ModelItem” vide à ma List ModelItemList . Étant donné que ModelItemID est un Guid, j’ai dû vérifier la présence de Guid.Empty dans ma méthode de contrôleur et faire du code. C’est tout.

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éfinissez la propriété AppendDataBoundItems de votre DropDownList sur true , puis vous placez un asp:ListItem dans DropDownList , qui deviendra votre élément par défaut avec tous les éléments de la firebase database venant après.