下拉列表对于枚举表达式,未选择所选项目
本文关键字:选择 项目 选项 表达式 于枚举 枚举 下拉列表 | 更新日期: 2023-09-27 18:34:09
我做了很多研究,发现有时对象的名称可能会导致问题等等。但是我已经(至少我认为)确定这不是问题。我看到人们遇到的大多数问题是试图将枚举转换为下拉列表,这是我不需要的。
我正在使用:
public enum PriorityTypeEnum
{
Low = 1,
Medium = 2,
High = 3,
}
@Html.DropDownListFor(m => m.CurrentTicket.Priority, Model.PriorityList.SetSelectedItem((int)Model.CurrentTicket.Priority))
获取所有优先级的列表,并将所选项目设置为 CurrenTicket.Priority。
现在,返回的列表本身很好。应选择的项目是,但是在下拉列表列表中未选择任何内容。执行调试后,如果我将优先级的类型从枚举(PriorityTypeEnum)更改为整数,它会选择正确的类型。如您所知,当我有一个保存值的枚举时,这真的很烦人。
我的问题是如何使其正确选择并仍然使用枚举?
我不知道我是否在这里错过了一些非常简单的东西。我一直在看这种方式。
您是否尝试过将SelectListItem
的值设置为Model.CurrentTicket.Priority.ToString()
而不是转换为int
?
您的新选择列表将是:
@Html.DropDownListFor(m => m.CurrentTicket.Priority, Model.PriorityList.Select(enum =>
{
Text = enum.ToString(),
Value = enum.ToString()
})
然后在控制器中,您可以将 model.CurrentTicket.Priority
属性设置为要选择的所需值