我有一个视图模型,其中包含具有可空类型的枚举,如下所示:
public StudyLevel? studyLevel { get; set; }
我已经制作了自定义html助手来显示用于将枚举渲染到视图中的下拉列表,可以使用
显示可空案例<option value="null">No value</option>
问题是当我提交表单时,模型状态给我错误:
studylevel cannot be "null" .
你能否建议我帮助我处理视图中的可空类型?
答案 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")
更多信息: