从 EnumDropDownListFor 中删除空条目
Remove Empty Entry from EnumDropDownListFor
我想从我的 EnumDropDownListfor 中删除 Blank/Empty 条目 - 已在线搜索并尝试了以下链接,但似乎没有任何效果
视图中的代码:-
<td>
@Html.EnumDropDownListFor(model => model.Actions, new { @id = "actions", @class = "form-control" })
</td>
模型中的代码:-
[Required]
[Range(1, int.MaxValue, ErrorMessage = "Select an Action")]
[Display(Name = "Actions")]
public ItemTypes Actions { get; set; }
控制器中的枚举:-
public enum ItemTypes
{
Add = 1,
Remove = 2
}
下拉框呈现如下:-
听起来你的问题是用起始索引 1 定义的枚举:
public enum ItemTypes
{
Add = 1,
Remove = 2
}
由于在上面的枚举中没有用索引 0 指定枚举器,帮助器在 SelectListItem
集合列表中包含零索引,因此一个空选项显示为默认选择项(记住枚举和集合都使用零-基于索引,因此第一项的索引为零)。
您可以定义一个索引为 0 的枚举器来设置默认选定值:
public enum ItemTypes
{
Nothing = 0,
Add = 1,
Remove = 2
}
或者使用标准 DropDownListFor
帮助程序,使用从 SelectListItem
定义的其他 属性 来绑定枚举值:
型号
public List<SelectListItem> ActionList { get; set; }
控制器
ActionList = Enum.GetNames(typeof(ItemTypes)).Select(x => new SelectListItem { Text = x, Value = x }).ToList();
查看
@Html.DropDownListFor(model => model.Actions, Model.ActionList, new { @id = "actions", @class = "form-control" })
参考:
我想从我的 EnumDropDownListfor 中删除 Blank/Empty 条目 - 已在线搜索并尝试了以下链接,但似乎没有任何效果
视图中的代码:-
<td>
@Html.EnumDropDownListFor(model => model.Actions, new { @id = "actions", @class = "form-control" })
</td>
模型中的代码:-
[Required]
[Range(1, int.MaxValue, ErrorMessage = "Select an Action")]
[Display(Name = "Actions")]
public ItemTypes Actions { get; set; }
控制器中的枚举:-
public enum ItemTypes
{
Add = 1,
Remove = 2
}
下拉框呈现如下:-
听起来你的问题是用起始索引 1 定义的枚举:
public enum ItemTypes
{
Add = 1,
Remove = 2
}
由于在上面的枚举中没有用索引 0 指定枚举器,帮助器在 SelectListItem
集合列表中包含零索引,因此一个空选项显示为默认选择项(记住枚举和集合都使用零-基于索引,因此第一项的索引为零)。
您可以定义一个索引为 0 的枚举器来设置默认选定值:
public enum ItemTypes
{
Nothing = 0,
Add = 1,
Remove = 2
}
或者使用标准 DropDownListFor
帮助程序,使用从 SelectListItem
定义的其他 属性 来绑定枚举值:
型号
public List<SelectListItem> ActionList { get; set; }
控制器
ActionList = Enum.GetNames(typeof(ItemTypes)).Select(x => new SelectListItem { Text = x, Value = x }).ToList();
查看
@Html.DropDownListFor(model => model.Actions, Model.ActionList, new { @id = "actions", @class = "form-control" })
参考: