要制作下拉列表,您需要两个属性:
- 您将绑定到的属性(通常是整数或字符串类型的标量属性)
- 包含两个属性(一个用于值,一个用于文本)的项目列表
在您的情况下,您只有一个字符串列表,无法利用它来创建可用的下拉列表。
虽然对于数字 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 属性设置为Items 集合中某个元素的相应Value。