web-dev-qa-db-fra.com

Liste déroulante ASP.NET MVC avec une option vide par défaut

Existe-t-il un moyen 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?

79
James Newton-King

Le texte ci-dessous ajoutera la chaîne. Vide à la SelectList (ou IEnumerable) spécifié dans l'élément ViewData ["Menu"]. La sélection aura l'identifiant et le nom MenuID.

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

Documentation: méthode DropDownList

127
tvanfosson

Par exemple:

    Controller :

    private void InitScreenInfoCollate()
    {   
        IEnumerable<MstBrd> listbrd = ibrandRepository.GetItemsByUsercode("");
        ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null);

    }

    View :
    @Html.DropDownList("Brands", null, string.Empty, new { @class = "form-control"})

Résultat :

inline image

7
tiepnv

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

0
PixelPlex