带有枚举的DropDownList中的默认值

时间:2018-04-30 14:50:28

标签: c# asp.net-mvc-4 enums

我已经搜索了一下,无法专门针对我的问题找到答案。

我有一个Enum:

public enum CodeType
{
    NotSpecified,
    Absent,
    NoAbsence,
    Other,
    Missing
}

以上枚举存储在结构中。我正在尝试使用DropDownList在视图中编辑存储的Enum,这很有效,除了我唯一的问题是我试图将DropDownList的默认值设置为模型的存储Enum。见下文:

@Html.DropDownList("c", EnumHelper.GetSelectList(typeof(CodeType)),Enum.GetValues(typeof(CodeType)))

作为第二个论点,我尝试过使用:

@Html.DropDownList("c", EnumHelper.GetSelectList(typeof(CodeType)),Enum.GetValues(typeof(Model.CodeType.ToString())))

但是,它确实将存储的Enum值显示为DropDownList中的字符串,但是如果用户点击提交按钮,我会得到一个null变量的错误,除非用户显式单击DropDownList并选择一个项目。 / p>

如何才能正确使用Model.CodeType作为DropDownList中的默认值?

1 个答案:

答案 0 :(得分:1)

在将模型传递到视图之前,尝试从控制器的GET方法中将Model.CodeType设置为所需的枚举。