it-swarm.it

Aggiunta di una classe CSS per selezionare utilizzando @ Html.DropDownList ()

Sto costruendo la mia prima applicazione MVC dopo anni di realizzazione di moduli web e per qualche motivo non sono in grado di farlo funzionare:

@Html.DropDownList("PriorityID", String.Empty, new {@class="textbox"} )

Messaggio di errore:

System.Web.Mvc.HtmlHelper<SPDR.Models.Bug> 'Non contiene una definizione per DropDownList e il miglior metodo di estensione overload System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, object) ha alcuni argomenti non validi

Qualsiasi aiuto molto apprezzato!

67
Lee Bailey

Guardando il controller e apprendendo un po 'di più su come funziona MVC, sono stato in grado di dare un senso a questo.

Il mio punto di vista era uno di quelli generati automaticamente e conteneva questa riga di codice:

@Html.DropDownList("PriorityID", string.Empty)

Per aggiungere attributi html, dovevo fare qualcosa del genere:

@Html.DropDownList("PriorityID", (IEnumerable<SelectListItem>)ViewBag.PriorityID, new { @class="dropdown" })

Grazie ancora a @Laurent per il tuo aiuto, mi rendo conto che la domanda non era chiara come avrebbe potuto essere ...

UPDATE:

Un modo migliore per farlo sarebbe usare DropDownListFor dove possibile, in questo modo non ti affidi a una stringa magica per l'attributo name

@Html.DropDownListFor(x => x.PriorityID, (IEnumerable<SelectListItem>)ViewBag.PriorityID, new { @class = "dropdown" })
97
Lee Bailey

Come implica la firma del messaggio di errore, il secondo argomento deve essere un IEnumerable, più specificamente, un IEnumerable di SelectListItem. È l'elenco delle scelte. È possibile utilizzare il tipo SelectList, che è un oggetto IEnumerable di SelectListItem. Per un elenco senza scelta:

@Html.DropDownList("PriorityID", new List<SelectListItem>(), new {@class="textbox"} )

Per un elenco con alcune opzioni:

@Html.DropDownList(
    "PriorityID", 
    new List<SelectListItem> 
    { 
        new SelectListItem { Text = "High", Value = 1 }, 
        new SelectListItem { Text = "Low",  Value = 0 },
    }, 
    new {@class="textbox"})

Forse questo tutorial può essere di aiuto: Come creare un DropDownList con ASP.NET MVC

Se si aggiunge più dell'argomento ya elenco a discesa in MVC Asp.Net. Quando modifichi il record o passi il valore nella view bag.

Usa questo funzionerà: -

@Html.DropDownList("CurrencyID",null,String.Empty, new { @class = "form-control-mandatory" })
18
mohita

Puoi farlo usando jQuery

  $("select").addClass("form-control")

qui, selezionare il tag is-html, il controllo del modulo è- nome classe

 @Html.DropDownList("SupplierId", "Select Supplier")

e qui, SupplierId è ViewBagList, Seleziona fornitore è - Nome visualizzato

6
Praveen M P

Ci sono alcune opzioni nel look dei costruttori, se non hai l'elenco a discesa e vuoi inserire una classe CSS che puoi usare come

@Html.DropDownList("Country", null, "Choose-Category", new {@class="form-control"})

in questo caso Paese è il nome del tuo menu a discesa, null è perché non stai passando alcun elenco generico dal tuo controller "Scegli categoria" è l'elemento selezionato e l'ultimo nella classe CSS se non vuoi selezionare alcuna opzione predefinita sostituisci semplicemente "Scegli categoria" con ""

5
mk Mughal

Prova semplicemente questo

@Html.DropDownList("PriorityID", (IEnumerable<SelectListItem>)ViewBag.PriorityID,  new { @class="dropdown" })

Ma se vuoi un valore predefinito o nessun valore di opzione, devi provare questo, perché String.Empty selezionerà quel valore per te che funzionerà come -select- come opzione predefinita

@Html.DropDownList("PriorityID", (IEnumerable<SelectListItem>)ViewBag.PriorityID, String.Empty, new { @class="dropdown" })
4
gdmanandamohon

Prova questo:

@Html.DropDownList(
    "country", 
    new[] {
        new SelectListItem() { Value = "IN", Text = "India" },
        new SelectListItem() { Value = "US", Text = "United States" }
    }, 
    "Country",
    new { @class = "form-control",@selected = Model.Country}
)
1
Abhishek Maurya

Prova sotto il codice:

@Html.DropDownList("ProductTypeID",null,"",new { @class = "form-control"})
0
Alfred Jose