
在 ASP.NET MVC 中使用枚举值填充下拉列表
在 ASP.NET MVC 中创建使用枚举值填充的下拉列表,可以使用 Html.DropDownList
扩展方法轻松实现。要将此方法与枚举一起使用,请按照以下步骤操作:
对于 MVC v5.1(及更高版本):
使用 Html.EnumDropDownListFor
方法:
1 2 3 4 5 | @Html.EnumDropDownListFor(
x => x.YourEnumField,
"请选择类型" ,
new { @ class = "form-control" }
)
|
登录后复制
对于 MVC v5(及更低版本):
使用 EnumHelper
类:
1 2 3 4 5 | @Html.DropDownList( "MyType" ,
EnumHelper.GetSelectList(typeof(MyType)),
"请选择类型" ,
new { @ class = "form-control" }
)
|
登录后复制
如果您使用的是 MVC 5 或更低版本,您可以使用扩展方法扩展 Rune 的解决方案:
1 2 3 4 5 6 7 8 9 10 11 12 13 | namespace MyApp.Common
{
public static class MyExtensions
{
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
where TEnum : struct, IComparable, IFormattable, IConvertible
{
var values = from TEnum e in Enum.GetValues(typeof(TEnum))
select new { Id = e, Name = e.ToString() };
return new SelectList(values, "Id" , "Name" , enumObj);
}
}
}
|
登录后复制
这允许使用简洁的语法:
1 | ViewData[ "taskStatus" ] = task.Status.ToSelectList();
|
登录后复制
请记住包含 MyApp.Common
命名空间以利用此扩展方法。
以上是如何在ASP.NET MVC中填充具有枚举值的下拉列表?的详细内容。更多信息请关注PHP中文网其他相关文章!