76 votes

Ajouter une classe CSS à sélectionner en utilisant @ Html.DropDownList ()

Je construis ma première application MVC après des années d'utilisation de formulaires Web et, pour une raison quelconque, je ne suis pas en mesure de faire en sorte que cela fonctionne:

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

Message d'erreur:

System.Web.Mvc.HtmlHelper<SPDR.Models.Bug> 'ne contient pas de définition de DropDownList et la meilleure surcharge de méthode d'extension System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, object) contient des arguments non valides

Toute aide grandement appréciée!

106voto

Lee Bailey Points 1207

En regardant le contrôleur, et de déblai un peu plus sur la façon dont MVC fonctionne réellement, j'ai été capable de donner un sens à cela.

De mon point de vue a été l'un des auto-générés, et cette ligne de code:

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

Pour ajouter des attributs html, j'ai besoin de faire quelque chose comme ceci:

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

Merci encore à @Laurent pour votre aide, je réalise que la question n'était pas aussi claire qu'elle pourrait l'être...

Mise à JOUR:

Une meilleure façon de le faire serait d'utiliser DropDownListFor , si possible, de cette façon, vous n'avez pas compter sur la magie de la chaîne pour le nom de l'attribut

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

40voto

Comme la signature de la message d'erreur indique, le deuxième argument doit être un IEnumerable, plus précisément, un IEnumerable de SelectListItem. Il s'agit de la liste de choix. Vous pouvez utiliser le SelectList type, qui est un IEnumerable de SelectListItem. Pour une liste de choix:

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

Pour une liste avec un peu de choix:

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

Peut-être que ce tutoriel peut être de l'aide: Comment créer un DropDownList avec ASP.NET MVC

19voto

mohita Points 11

Si vous ajoutez plus que l’argument ya dropdownlist dans Asp.Net MVC. Lorsque vous modifiez un enregistrement ou transmettez une valeur dans la vue.

Utilisez ceci ce sera un travail: -

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

6voto

Praveen M P Points 140

Vous pouvez le faire en utilisant jQuery

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

ici, Sélectionnez la balise is- html, Nom de la classe de contrôle de forme

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

et ici, SupplierId est ViewBagList, Select Supplier is - Nom complet

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X