添加一个css类来select使用@ Html.DropDownList()

经过多年的webforms,我正在构build我的第一个MVC应用程序,出于某种原因,我无法做到这一点:

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

错误信息:

System.Web.Mvc.HtmlHelper<SPDR.Models.Bug> '不包含DropDownList的定义和最佳扩展方法System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>, object)有一些无效的参数

任何帮助非常感谢!

看着控制器,并多了解MVC是如何工作的,我能够理解这一点。

我的看法是自动生成的一个,包含这行代码:

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

要添加html属性,我需要做这样的事情:

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

再次感谢@劳伦特的帮助,我意识到这个问题并不是很清楚。

更新:

这样做的一个更好的方法是在可能的情况下使用DropDownListFor ,这样就不会依赖magicstring作为name属性

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

由于错误消息的签名意味着第二个参数必须是IEnumerable,更具体地说,是SelectListItem的IEnumerable。 这是select的列表。 您可以使用SelectListtypes,它是SelectListItem的IEnumerable。 对于没有select的列表:

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

有几个select的列表:

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

也许这个教程可以帮助: 如何使用ASP.NET MVC创buildDropDownList

如果在Asp.Net MVC中添加了比参数ya dropdownlist更多的参数。 当你编辑logging或查看袋中的值。

使用这将是工作: –

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

你可以使用jQuery来做到这一点

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

在这里,selectis-html标签,表单控件是类名称

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

在这里,SupplierId是ViewBagList,select供应商是 – 显示名称

只需试试这个

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

但是,如果你想要一个默认值或没有选项值,那么你必须尝试这一个,因为String.Empty将select没有值作为-select-作为默认选项

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

尝试这个:

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

在构造函数中有一些选项,如果你没有dropdownLis,你想插入你可以使用的html类

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

在这种情况下,国家是您的下拉列表的名称,null是你没有从你的控制器通过任何通用列表“select – 类别”是select项目和最后一个在HTML类如果你不想select任何默认选项简单地用“”replace“select – 类别”

尝试下面的代码:

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

尝试这个

  @Html.DropDownList("Id", null, new { @class = "ct-js-select ct-select-lg" }) 

你可以简单地做到这一点:

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