asp.net mvc如何为html.dropdownlist添加占位符

use*_*360 12 asp.net-mvc placeholder drop-down-menu

我正在使用asp.net mvc 3.

我有这个国家的下拉列表,我想为它添加一个占位符.这是我的代码:

@Html.DropDownList("country",
     new SelectList(ViewBag.countries as System.Collections.IEnumerable,
     "name", "name"), new { @class="chzn-select", @placeholder="-select-",
     @style="width:160px;" } )
Run Code Online (Sandbox Code Playgroud)

但占位符不起作用,而风格有效.

如何为此设置占位符?

PS.我只是想用@Html.DropDownList,而不是@Html.DropDownListFor

小智 10

你可以试试这个:

@Html.DropDownList("country", new SelectList(ViewBag.countries), "-select- ", new { @class="chzn-select", @style="width:160px;" })
Run Code Online (Sandbox Code Playgroud)

  • 问题是,您可以选择选项标签。 (2认同)

Nat*_*han 6

在您的集合ViewBag.Countries中,只需在集合的from处插入一个名为"-select-"的虚拟记录.您应该能够使用如下的替代构造函数强制选定的项:

@Html.DropDownList("country",
     new SelectList(ViewBag.countries as System.Collections.IEnumerable,
     "name", "name", "-select-"), new { @class="chzn-select", @style="width:160px;" } )
Run Code Online (Sandbox Code Playgroud)

  • 这是我的方式,它终于奏效了.@ Html.DropDownList("country",新的SelectList(ViewBag.countries为System.Collections.IEnumerable,"name","name")," - SERECT-",new {@ class ="chzn-select",@ placeholder =" - SELECT-",@ style ="width:160px;"}) (4认同)

ken*_*n2k 6

一个涉及 jQuery 的快速且(不那么)肮脏的解决方案。

不要在列表的开头添加一个虚拟项目,而是添加一个禁用的新选项。主要优点是您不必弄乱列表中的虚拟项目,最重要的是,您将无法在页面中选择该虚拟项目

@Html.DropDownList("yourName", yourSelectList, new { @class = "form-control select-add-placeholder" })
Run Code Online (Sandbox Code Playgroud)

然后在某处之后:

$(".select-add-placeholder").prepend("<option value='' disabled selected>Select an option...</option>");
Run Code Online (Sandbox Code Playgroud)

看起来像:

在此处输入图片说明