使用html.dropdownlistfor时显示所选值

时间:2014-02-06 21:36:00

标签: asp.net-mvc dropdownlistfor

我正在使用

@Html.DropDownListFor(x => x.Selects, new SelectList(Model.Selects, "Value", "Text", Model.Select), "Select"})`

下拉列表显示美国各州名单。我正在展示的文字是AL Alabama,CA California,NY New York等....见下文

<option value="AL">AL Alabama</option>
<option value="CA">CA California</option>
<option value="NY">NY New York</option>
....

value属性具有州缩写。我想要实现的是,当用户做出选择时,UI上的选定值应显示状态缩写而不是状态名称。目前它显示缩写状态名称。谁能帮我?

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是简单地使用您的Value属性两次(作为选项的值和内部文本):

@Html.DropDownListFor(x => x.Selects, 
    new SelectList(Model.Selects, "Value", "Value", Model.Select), "Select"})

如果您首先要显示州名称,然后只有在选择用户后将其更改为州名称,您应该通过Javascript处理此问题。

要通过Javascript执行此操作,您应首先设置下拉列表的ID并指定相应的onChange函数:

@Html.DropDownListFor(x => x.Selects, 
    new SelectList(Model.Selects, "Value", "Text", Model.Select), "Select"},
    , new {@id="selectListId" onchange = "setText(this)"})

然后实现你的功能:

function setText(sel) {
   var selectedItem = sel.options[sel.selectedIndex];
   selectedItem.text = selectedItem.value;  
   //or       
   //$("#selectListId option:selected").text(selectedItem.value); 
}