因此,如果设置一个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"}})
“选择资料”的价值是什么,它是显示在下拉列表开头的可选标签?
我想要这个值,因为如果没有选择任何值,那么我想得到所有数据。
谢谢!
答案 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.其中它将帮助你生成一个伪值用户可以在下拉列表中选择值,您应该能够在后端代码上处理它。希望这可以帮助。