我有一个视图模型,其中包含可空类型的枚举,如下所示:
public StudyLevel? studyLevel { get; set; }
我已经制作了自定义的 html 助手来显示一个下拉列表,用于将枚举呈现到视图中,可空大小写使用
<option value="null">No value</option>
问题是当我提交表单模型状态时给我错误:
studylevel cannot be "null" .
你能建议我任何方法来帮助我处理视图中的可为空类型吗?
我可能是错的,但我很确定可空枚举和 MVC 默认模型绑定器存在一些限制。我建议有一个代表"无值"的状态,例如
StudyLevel.None
这样,您无需处理检查null
等。
如果您更改 html 帮助程序以像这样显示 null 值怎么办?
<option>No value</option>
还是这样?
<option value="">No value</option>
编辑:更好的选择(IMO)是创建SelectListItem
集合,然后使用内置的HTML帮助程序。请查看我几个月前创建的这篇文章,它可能会对您有所帮助。你可以像这样使用它:
@Html.EnumDropDownList<StudyLevel?>("studyLevel", "No value")
更多信息在这里:
ASP.NET MVC:为枚举创建本地化的下拉列表