HTML DropDownList的“optionLabel”的默认值是什么?

时间:2012-01-17 23:09:56

标签: asp.net-mvc-3 razor

因此,如果设置一个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"}})  

“选择资料”的价值是什么,它是显示在下拉列表开头的可选标签?

我想要这个值,因为如果没有选择任何值,那么我想得到所有数据。

谢谢!

3 个答案:

答案 0 :(得分:7)

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

<select name="selectedValue">
    <option value="">Select Stuff</option>
    ...
</select>

此外,您似乎使用myDDL作为第一个参数和第二个下拉列表帮助程序,这是错误的。第一个参数是一个用于获取所选值的属性。第二个是可用值,必须是IEnumerable<SelectListItem>

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

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

但是真正有意义的是什么以及我推荐你的是摆脱这个ViewBag并使用视图模型和这个帮助器的强类型版本:

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

答案 1 :(得分:2)

这是空字符串。 documentation涵盖了这一点(强调我的):

  

optionLabel

     
    

输入:System.String

         

默认项的文字。     此参数可以为null。

  

答案 2 :(得分:0)

你实际上可以尝试在你的下拉列表中的对象列表中添加一个伪值,它取值为“无”/“选择东西”并且id = 0.其中它将帮助你生成一个伪值用户可以在下拉列表中选择值,您应该能够在后端代码上处理它。希望这可以帮助。