要创建下拉列表,您需要两个属性:
- 您将绑定到的属性(通常是整数或字符串类型的标量属性)
- 包含两个属性的项目列表(一个用于值,一个用于文本)
在您的情况下,您只有一个字符串列表,无法利用该列表来创建可用的下拉列表。
而对于数字2,您可以使值和文本相同,并且需要绑定属性。您可以使用辅助程序的弱类型版本:
@model List<string>@Html.DropDownList( "Foo", new SelectList( Model.Select(x => new { Value = x, Text = x }), "Value", "Text" ))其中
Foo将是ddl的名称,并由默认模型绑定程序使用。因此,生成的标记可能如下所示:
<select name="Foo" id="Foo"> <option value="item 1">item 1</option> <option value="item 2">item 2</option> <option value="item 3">item 3</option> ...</select>
据说,下拉列表的更好的视图模型如下:
public class MyListModel{ public string SelectedItemId { get; set; } public IEnumerable<SelectListItem> Items { get; set; }}然后:
@model MyListModel@Html.DropDownListFor( x => x.SelectedItemId, new SelectList(Model.Items, "Value", "Text"))
如果要在此列表中预先选择某个选项,则只需
SelectedItemId将该视图模型的属性设置为集合
Value中某个元素的对应属性即可
Items。



