2009-02-03 12 views

Répondre

123

Le texte ci-dessous ajoutera une chaîne de caractères. Vide dans la liste SelectList (ou IEnumerable) spécifiée dans l'élément ViewData ["Menu"]. Le select aura l'identifiant et le nom MenuID.

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

Documentation: DropDownList method

+12

Merci. Le nom de paramètre de optionLabel pour l'option par défaut m'a renversé :) –

+4

Geez ... moi aussi je commençais à écrire ma propre méthode d'aide ... nom de rebut IMHO - semble comme s'il produirait une étiquette

+1

Petite faute de frappe: devrait lire HerbalMart

-5

La solution présentée ici a travaillé très bien 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 à true puis mettre un asp:ListItem en le DropDownList et cela deviendra votre élément par défaut avec tous les éléments de la base de données qui suivent.

+4

'-1' Ceci est pour les formulaires Web ASP.NET, pas pour MVC. – JoeBrockhaus

0

Cette solution facile a travaillé pour mon projet mvc5:

en vue:

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

il suffit d'ajouter un nouvel élément à la List<> que vous voulez afficher dans votre vue. Dans mon cas, j'ai ajouté un "ModelItem" vide à mon List<ModelItem> ModelItemList. Puisque 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.

6

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

Questions connexes