下拉列表对于枚举表达式,未选择所选项目

本文关键字:选择 项目 选项 表达式 于枚举 枚举 下拉列表 | 更新日期: 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 属性设置为要选择的所需值