经过多年的网络表演后,我正在构建我的第一个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)
包含一些无效参数
任何帮助都非常感谢!
答案 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" })