编辑时,下拉列表中会填充默认值

时间:2013-10-23 07:47:57

标签: asp.net-mvc asp.net-mvc-4

在我的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

2 个答案:

答案 0 :(得分:1)

“选定的性别”是您的下拉列表的默认值,但由于您未指定任何选定的值(即当前人员性别),因此在页面加载时它将始终显示第一个项目。假设您的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")

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

答案 1 :(得分:0)

您正在使用具有以下签名的帮助程序:

DropDownList(HtmlHelper,String,IEnumerable,String)

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

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

new SelectListItem {Text =“Female”,Value =“Female”},        })

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