HTML DropDownList的"optionLabel"的默认值是什么?

EKe*_*Ket 3 razor asp.net-mvc-3

因此,如果设置一个DropDownList,其中Text:"people names" (string)和Value : studentID (int). 在我看来像这样(假设myDDL是来自Viewbag中的代码隐藏的数据)

     @Html.DropDownList("myDDL", (IEnumerable<SelectListItem>)ViewBag.myDDL,  
     "Select Stuff", new Dictionary<string,object>{
      {"class","dropdowns"},{"id","myDDL"}})  
Run Code Online (Sandbox Code Playgroud)

"选择东西"的值是什么,它是一个出现在下拉列表开头的可选标签?

我喜欢这个值,因为如果没有选择任何值,那么我想获得所有数据.

谢谢!

Dar*_*rov 7

它是空的,它始终是下拉列表的第一个选项,因此请确保将其绑定到回发操作中的非可空属性:

<select name="selectedValue">
    <option value="">Select Stuff</option>
    ...
</select>
Run Code Online (Sandbox Code Playgroud)

你似乎也使用myDDL了第一个参数和第二个dropdownlist帮助器,这是错误的.第一个参数是一个用于获取所选值的属性.第二个是可用值,必须是IEnumerable<SelectListItem>.

所以这样的事情会更有意义:

@Html.DropDownList(
    "selctedValue",
    (IEnumerable<SelectListItem>)ViewBag.myDDL,
    "Select Stuff", 
    new { @class = "dropdowns", id = "myDDL" }
)
Run Code Online (Sandbox Code Playgroud)

但是真正有意义的是什么,我建议你去除它ViewBag并使用视图模型和这个帮助器的强类型版本:

@model MyViewModel
...
@Html.DropDownListFor(
    x => x.SelectedValue,
    Model.MyDdlItems,
    "Select Stuff", 
    new { @class = "dropdowns", id = "myDDL" }
)
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法给它一个值? (2认同)