Jam*_*mes 2 asp.net validation asp.net-mvc html.dropdownlistfor asp.net-mvc-4
在我的ASP.NET MVC4模型中,我有一个必需的属性:
[Required(ErrorMessage = "Select a class")]
public string ClassName { get; set; }
Run Code Online (Sandbox Code Playgroud)
这绑定到Razor视图中的下拉列表:
@Html.DropDownListFor(o => o.ClassName, new SelectList(Model.ClassList))
@Html.ValidationMessageFor(model => model.ClassName)
Run Code Online (Sandbox Code Playgroud)
但是,我已将第一个元素设置Model.ClassList为占位符字符串"Select one".如果用户在没有选择类的情况下提交表单,则会将其注册为有效,因为ClassName其值为"Select one".
如何使此占位符选择无效?
您可以从Model属性中删除占位符并将其放在帮助器中:
@Html.DropDownListFor(o => o.ClassName, new SelectList(Model.ClassList), "Select one")
Run Code Online (Sandbox Code Playgroud)