html帮助器中可以为空的枚举

时间:2012-12-14 10:44:10

标签: c# html-helper nullable

我有一个视图模型,其中包含具有可空类型的枚举,如下所示:

public StudyLevel? studyLevel { get; set; }

我已经制作了自定义html助手来显示用于将枚举渲染到视图中的下拉列表,可以使用

显示可空案例
<option value="null">No value</option>

问题是当我提交表单时,模型状态给我错误:

studylevel cannot be "null" .

你能否建议我帮助我处理视图中的可空类型?

2 个答案:

答案 0 :(得分:2)

我可能错了,但我很确定在可空的枚举和MVC默认模型绑定器方面存在一些限制。我建议使用代表“ no value ”的状态,例如

StudyLevel.None

这样您就不需要处理null等的检查。

答案 1 :(得分:1)

如果你改变你的html助手以显示这样的空值怎么办?

<option>No value</option>

或者喜欢这个?

<option value="">No value</option>

编辑:更好的选择(IMO)是创建SelectListItem的集合,然后使用内置的HTML帮助程序。请看看我几个月前创建的这篇文章,它可能对你有所帮助。您可以像这样使用它:

@Html.EnumDropDownList<StudyLevel?>("studyLevel", "No value")

更多信息:

ASP.NET MVC: Creating localized DropDownLists for enums