【发布时间】:2016-09-20 20:26:18
【问题描述】:
我有一个使用 DropDownListFor 的视图:
@Html.DropDownListFor(m => m.Nationality, NationalityDD, new { style = "width:185px;" })
SelectListItem 列表被以下方式更改:
List<SelectListItem> NationalityDD = new List<SelectListItem>();
var n0 = new SelectListItem { Value = "", Text = "" };
var n1 = new SelectListItem { Value = "p", Text = @Resources.Localization.nationality_LR_citizen };
var n2 = new SelectListItem { Value = "np", Text = @Resources.Localization.nationality_LR_resident };
var n3 = new SelectListItem { Value = "es", Text = @Resources.Localization.nationality_ES_citizen };
var n4 = new SelectListItem { Value = "ne", Text = @Resources.Localization.nationality_other };
NationalityDD.Add(n0); NationalityDD.Add(n1); NationalityDD.Add(n2); NationalityDD.Add(n3); NationalityDD.Add(n4);
所以,问题是当我将 np/es/ne 值设置到数据库中时,刷新页面后一切都很好,并且仍然显示选定的值,但是如果我在刷新页面后设置 p 则没有选定的值“”。
这个html是我选择p时DDL生成的(刷新后):
<select id="Nationality" name="Nationality" style="width:185px;">
<option value=""></option>
<option value="p">LR pilsonis</option>
<option value="np">LR Pastāvīgais iedzīvotājs</option>
<option value="es">ES pilsonis</option>
<option value="ne">ne-ES pilsonis</option>
</select>
当我选择除p 之外的其他内容时(刷新后):
<select id="Nationality" name="Nationality" style="width:185px;"><option value=""></option>
<option value="p">LR pilsonis</option>
<option value="np">LR Pastāvīgais iedzīvotājs</option>
<option selected="selected" value="es">ES pilsonis</option>
<option value="ne">ne-ES pilsonis</option>
</select>
DDL 出现这种奇怪行为的原因可能是什么?
【问题讨论】:
-
设置所选选项的代码在哪里(刷新/页面加载时)?
-
下拉列表不是自己做的吗?
-
不需要写代码来设置吗?使用
Html.DropDownListFor辅助方法 -
什么意思?第一个值
m => m.Nationality等于 DDL 中的一个元素,所以它必须是选择的选项? -
您是否在返回视图之前在代码中设置了
Nationality属性的值?你应该这样做。看到这个stackoverflow.com/questions/11937361/…
标签: html asp.net asp.net-mvc drop-down-menu