2009-02-03 14 views

risposta

123

Di seguito verrà inserita la stringa. Vuota la lista di selezione (o IEnumerable) specificata nell'elemento ["Menu"] ViewData. La selezione avrà ID e nome MenuID.

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

Documentazione: DropDownList method

+12

Grazie. Il nome del parametro di optionLabel per l'opzione predefinita mi ha buttato fuori :) –

+4

Geez ... anche io stavo iniziando a scrivere il mio metodo di supporto ... nome dell'immondizia IMHO - sembra che emetterebbe un tag

+1

Piccolo errore di battitura: dovrebbe leggere HerbalMart

-5

La soluzione presentata qui ha lavorato molto bene per me: http://forums.asp.net/t/1142484.aspx/1

L'idea di base è che si imposta la proprietà AppendDataBoundItems del DropDownList per true e poi mettere un asp:ListItem in il DropDownList e diventerà il tuo oggetto predefinito con tutti gli elementi del database che verranno dopo di esso.

+4

'-1' Questo è per ASP.NET Web Forms, non MVC. – JoeBrockhaus

0

Ciò facile soluzione ha funzionato per il mio progetto mvc5:

in vista:

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

Basta aggiungere un nuovo elemento alla List<> che si desidera visualizzare nella vista. Nel mio caso, ho aggiunto un "ModelItem" vuoto al mio List<ModelItem> ModelItemList. Poiché il mio ModelItemID è un Guid, ho dovuto verificare Guid.Empty nel mio metodo di controllo e fare un po 'di codice. Questo è tutto.

6

Per esempio:

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"}) 

Risultato:

inline image

Problemi correlati