html helper 中的可为空的枚举



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

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:为枚举创建本地化的下拉列表

相关内容

  • 没有找到相关文章

最新更新