34 votos

Añadir una clase css para seleccionar el uso de @Html.DropDownList()

Estoy construyendo mi primera aplicación MVC después de años de hacer webforms, y por alguna razón no soy capaz de hacer este trabajo:

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

Mensaje de Error:

System.Web.Mvc.HtmlHelper<SPDR.Models.Bug>' no contiene una definición de" DropDownList y el mejor método de extensión de sobrecarga System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, object) tiene algunos argumentos no válidos

Cualquier ayuda muy apreciada!

55voto

Lee Bailey Puntos 1207

Buscando en el controlador, y learing un poco más acerca de cómo MVC realmente funciona, yo era capaz de dar sentido a esta.

Mi punto de vista fue uno de los auto-generadas, y contenía esta línea de código:

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

Para añadir los atributos de html, necesitaba hacer algo como esto:

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

Gracias de nuevo a @Laurent por su ayuda, me doy cuenta de que la pregunta no era tan clara como podría haber sido...

ACTUALIZACIÓN:

Una mejor manera de hacer esto sería el uso de DropDownListFor donde sea posible, de esta manera no depender de una cadena mágica para el atributo name

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

29voto

Como la firma del mensaje de error indica, el segundo argumento debe ser un IEnumerable, más específicamente, un IEnumerable de SelectListItem. Es la lista de opciones. Usted puede utilizar el SelectList tipo, que es un IEnumerable de SelectListItem. Para una lista de opciones:

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

Para obtener una lista con un par de opciones:

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

Tal vez este tutorial puede ser de ayuda: Cómo crear un DropDownList con ASP.NET MVC

6voto

mohita Puntos 11

Si se añade más de un argumento ya dropdownlist en Asp.Net MVC. Al Modificar el registro o pase de valor a la vista de la bolsa.

Utilice este va a ser el trabajo:-

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

4voto

Praveen M P Puntos 140

Usted Puede hacer uso de jQuery

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

aquí, Seleccione la es - etiqueta html, Formulario de control de es - nombre de la clase

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

y aquí, el Proveedor es ViewBagList, Seleccionar Proveedor - Nombre para Mostrar

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X