使用@ Html.DropDownList()添加要选择的css类

时间:2011-09-09 20:55:55

标签: asp.net-mvc razor

经过多年的网络表演后,我正在构建我的第一个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)包含一些无效参数

任何帮助都非常感谢!

10 个答案:

答案 0 :(得分:96)

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

我的观点是自动生成的观点之一,并包含以下代码行:

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

要添加html属性,我需要执行以下操作:

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

再次感谢@Laurent的帮助,我意识到这个问题并不像它本来的那样清晰......

更新:

更好的方法是尽可能使用DropDownListFor,这样就不会依赖魔术字符串作为名称属性

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

答案 1 :(得分:36)

正如错误消息中的签名所暗示的那样,第二个参数必须是IEnumerable,更具体地说,是一个IEnumerable的SelectListItem。这是选择清单。您可以使用SelectList类型,它是SelectListItem的IEnumerable。 对于没有选择的列表:

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

对于有一些选择的列表:

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

也许本教程可以提供帮助:How to create a DropDownList with ASP.NET MVC

答案 2 :(得分:18)

如果你在Asp.Net MVC中添加多个参数ya下拉列表。 在视图包中编辑记录或传递值时。

使用它将起作用: -

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

答案 3 :(得分:6)

你可以使用jQuery

来做到这一点
  $("select").addClass("form-control")

这里,选择is-html标签,      表格控制是班级名称

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

这里,SupplierId是ViewBagList,          选择供应商是 - 显示名称

答案 4 :(得分:5)

构造函数中有一些选项, 如果你没有dropdownList,你想插入CSS类,你可以使用

..x

在这种情况下,国家/地区是您的下拉列表的名称,null是因为您没有从您的控制器传递任何通用列表&#34;选择类别&#34;是CSS类中的选定项目和最后一项 如果你不想选择任何默认选项那么简单的替换&#34;选择类别&#34;用&#34;&#34;

答案 5 :(得分:4)

只需试试这个

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

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

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

答案 6 :(得分:1)

试试这个:

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

答案 7 :(得分:0)

尝试以下代码:

Fund.where('created_at > ?', Time.now.beginning_of_year).pluck(:objective)

答案 8 :(得分:-1)

你可以这样做:

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

答案 9 :(得分:-2)

试试这个

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