下拉列表的html助手?

时间:2009-10-02 21:46:24

标签: asp.net-mvc

是否有任何助手可以在asp.net-mvc中显示下拉列表?

我有一个我需要填充的枚举,并在下拉列表中预先选择。

2 个答案:

答案 0 :(得分:2)

MVC Contrib的FluentHtml库内置支持从枚举中生成选择框。

<%= this.Select("example")
        .Options<System.IO.FileOptions>()
        .Selected(System.IO.FileOptions.Asynchronous) %>

输出:

<select id="example" name="example">
    <option value="0">None</option>
    <option value="16384">Encrypted</option>
    <option value="67108864">DeleteOnClose</option>
    <option value="134217728">SequentialScan</option>
    <option value="268435456">RandomAccess</option>
    <option selected="selected" value="1073741824">Asynchronous</option>
    <option value="-2147483648">WriteThrough</option>
</select> 

答案 1 :(得分:1)

<%= Html.DropDownList() %>有大约8个可以使用的重载。您需要将枚举映射到IEnumerable<SelectListItem>以传递给它。像这样:

var names = Enum.GetNames(typeof(MyEnum));
List<SelectListItem> items = new List<SelectListItem>();
foreach (var s in names)
{
   items.Add(new SelectListItem() { Text = s, 
                                    Value = s,
                                    Selected = (s == "SelectedValue") };
}