-1

在我的 MVC 应用程序中,我有一个注册,其中我有一个下拉列表Gender来填充我已在视图中包含代码

@Html.DropDownList("Gender", new List<SelectListItem>{
    new SelectListItem {Text="Male" , Value="Male"},
    new SelectListItem{Text= "Female",Value="Female"},
    },"Select Gender")

但是在编辑而不是绑定正确Gender时,它采用默认值。例如对于人Test来说,GenderMale,但是在编辑器页面上它显示的是默认值Select Gender,而不是显示为Male

4

2 回答 2

1

“Selected Gender”是您的下拉列表的默认值,但由于您没有指定任何选定的值(即当前人性别),因此在页面加载时它将始终显示第一项。你可以试试这个,假设你的 Person 模型中有一个“Gender”属性:

@model myNamespace.PersonModel

@Html.DropDownListFor(model => model.Gender, new List<SelectListItem>{
new SelectListItem {Text="Male" , Value="Male"},
new SelectListItem{Text= "Female",Value="Female"},
},"Select Gender")

选定的值将是当前人的性别。

于 2013-10-23T07:58:45.200 回答
0

您正在使用具有以下签名的助手:

DropDownList(HtmlHelper,字符串,IEnumerable,字符串)

Microsoft 将该字符串定义为“optionLabel”。http://msdn.microsoft.com/en-us/library/dd492883.aspx换句话说,它只是一个占位符。如果您希望“Male”成为默认值,请像这样构建您的助手:

 @Html.DropDownList("Gender", new List<SelectListItem>{
    new SelectListItem {Text="Male" , Value="Male"},

新的 SelectListItem{Text="Female",Value="Female"}, })

然后,您可以将“选择性别”移出标签。

于 2013-10-23T07:58:24.630 回答