我做了很多研究,发现有时候对象的名称会导致问题,等等。但是我(至少我认为)确定这不是问题。我看到人们遇到的大多数问题都是尝试将枚举转换为下拉列表,这是我不需要的。
我正在使用:
public enum PriorityTypeEnum
{
Low = 1,
Medium = 2,
High = 3,
}
@Html.DropDownListFor(m => m.CurrentTicket.Priority, Model.PriorityList.SetSelectedItem((int)Model.CurrentTicket.Priority))
获取所有优先级的列表,并将所选项目设置为CurrenTicket.Priority。
现在,返回的列表本身很好。应该选择的项目,但DropDownListFor中没有选择任何内容。在进行调试后,如果我将优先级的类型从枚举(PriorityTypeEnum)更改为int,则选择正确的类型。正如你所知,当我有一个包含值的枚举时,这真的很烦人。
我的问题是如何正确选择并仍然使用枚举?
我不知道我在这里是否遗漏了一些非常简单的东西。我一直在寻找这种方式。
答案 0 :(得分:0)
您是否尝试将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
属性设置为要选择的所需值