【发布时间】:2016-07-26 17:24:03
【问题描述】:
在我的视图模型类中,我有一个枚举类型属性SubjectType:
[Required(ErrorMessage = "This field is required.")]
public SubjectType SubjectType { get; set; }
我想为此属性创建下拉列表。但默认情况下,我希望将其设置为 null,以便用户必须选择某些内容,如果他尝试在不选择任何选项的情况下提交表单,则会显示验证消息。
实现这一目标的最佳方法是什么?
我试图将SubjectType 属性更改为可空,并将默认值设置为null,但验证仍然通过此字段(不知何故)并且表单已提交到服务器。默认情况下,该字段的值设置为枚举定义中的第一个值。不允许使用 JavaScript,我想将所有内容都保存在代码隐藏中。如有任何建议,我将不胜感激。
到目前为止,我是这样渲染的:
@Html.DropDownList("SubjectType", EnumHelper.GetSelectList(typeof(SubjectType)))
@Html.LabelFor(model => model.SubjectType)
@Html.ValidationMessageFor(model => model.SubjectType)
【问题讨论】:
-
如何渲染下拉菜单?您的查看代码?您如何传递项目(那些是什么)来构建下拉列表?
-
编辑了帖子; EnumHelper 在 System.Web.Mvc 程序集中,在 System.Web.Mvc.Html 命名空间下
-
正在使用 foreach 为 u 呈现列表?
-
它不起作用。已发布空值且未触发验证。
-
正如我提到的,我希望对此字段进行客户端验证
标签: c# asp.net-mvc enums html.dropdownlistfor