如何让Html.DropDownList()在回发时保留选定的值?

时间:2013-07-12 17:38:40

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

使用MVC4视图中的以下代码生成select元素

@Html.DropDownList(
"abPrintYearsMode",
new List<SelectListItem>{
  new SelectListItem { Text = "Lifetime", Value = "1" },
  new SelectListItem { Text = "Manual", Value = "2" }
},
new { @class = "required" }
)

,呈现以下HTML

<select class="required" id="abPrintYearsMode" name="abPrintYearsMode">
  <option value="1">Lifetime</option>
  <option value="2">Manual</option>
</select>

如何让select元素保留用户在回发中选择的值?目前,即使用户选择“手动”选项#2,也会在回发后始终选择最上面的选项“Lifetime”。

3 个答案:

答案 0 :(得分:2)

@Html.DropDownListFor( x => x.abPrintYearsMode,
new List<SelectListItem>{
  new SelectListItem { Text = "Lifetime", Value = "1" },
  new SelectListItem { Text = "Manual", Value = "2" }
},
new { @class = "required", id= "abPrintYearsMode"}
)

答案 1 :(得分:0)

您是否尝试将autopostback属性设置为true?

Dropdown Box具有属性autopostback whcih,如果设置为true则触发事件。因此,当用户在组合框中选择不同的值时,将在服务器中触发事件。即请求将被发送到服务器

Reference

答案 2 :(得分:0)

您需要视图使用的模型上的属性,该属性将包含下拉列表的选定值。在您的情况下,此属性需要是:

public int abPrintYearsMode { get; set; }