Asp.net mvc 用于下拉列表的html帮助程序?

Asp.net mvc 用于下拉列表的html帮助程序?,asp.net-mvc,Asp.net Mvc,在asp.net-mvc中是否有显示下拉列表的帮助程序 我需要填充一个枚举,并在dropdownlist中进行预选。有大约8个重载可供使用。您需要将枚举映射到IEnumerable以传递给它。大概是这样的: var names = Enum.GetNames(typeof(MyEnum)); List<SelectListItem> items = new List<SelectListItem>(); foreach (var s in names) { item

在asp.net-mvc中是否有显示下拉列表的帮助程序

我需要填充一个枚举,并在dropdownlist中进行预选。

有大约8个重载可供使用。您需要将枚举映射到
IEnumerable
以传递给它。大概是这样的:

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") };
}
var name=Enum.GetNames(typeof(MyEnum));
列表项=新列表();
foreach(名称中的变量s)
{
添加(新建SelectListItem(){Text=s,
值=s,
选定=(s==“SelectedValue”)};
}
大约有8个重载可供使用。您需要将枚举映射到一个
IEnumerable
以传递给它。类似以下内容:

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") };
}
var name=Enum.GetNames(typeof(MyEnum));
列表项=新列表();
foreach(名称中的变量s)
{
添加(新建SelectListItem(){Text=s,
值=s,
选定=(s==“SelectedValue”)};
}
MVC Contrib的库内置了对从枚举生成选择框的支持

<%= 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> 

没有一个
加密的
删除关闭
顺序扫描
随机存取
异步的
书写
MVC Contrib的库内置了对从枚举生成选择框的支持

<%= 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> 

没有一个
加密的
删除关闭
顺序扫描
随机存取
异步的
书写

就我个人而言,如果我这样做的话,我会使用LINQ,而不是创建一个列表然后填充它。将一个事物的序列转换成另一个事物的序列正是LINQ所擅长的。var items=Enum.GetNames(typeof(MyEnum)).Select(n=>new SelectListItem(){Text=n,Value=n,Selected=(n==“SelectedValue”)});就个人而言,如果我这样做的话,我会使用LINQ,而不是创建一个列表然后填充它。将一个事物的序列转换为另一个事物的序列正是LINQ擅长的。var items=Enum.GetNames(typeof(MyEnum)).Select(n=>new SelectListItem(){Text=n,Value=n,Selected=(n==“SelectedValue”)});