在ASP.NET MVC中验证时拒绝下拉占位符
在我的ASP.NET MVC4模型中,我有一个必需的属性:在ASP.NET MVC中验证时拒绝下拉占位符,asp.net,asp.net-mvc,validation,asp.net-mvc-4,html.dropdownlistfor,Asp.net,Asp.net Mvc,Validation,Asp.net Mvc 4,Html.dropdownlistfor,在我的ASP.NET MVC4模型中,我有一个必需的属性: [必需(ErrorMessage=“选择类”)] 公共字符串类名{get;set;} 这将绑定到Razor视图中的下拉列表: @Html.DropDownListFor(o=>o.ClassName,新选择列表(Model.ClassList)) @Html.ValidationMessageFor(model=>model.ClassName) 但是,我已经将Model.ClassList的第一个元素设置为占位符字符串“选择一个”
[必需(ErrorMessage=“选择类”)]
公共字符串类名{get;set;}
这将绑定到Razor视图中的下拉列表:
@Html.DropDownListFor(o=>o.ClassName,新选择列表(Model.ClassList))
@Html.ValidationMessageFor(model=>model.ClassName)
但是,我已经将Model.ClassList
的第一个元素设置为占位符字符串“选择一个”
。如果用户提交表单时未选择类,则该表单将注册为有效,因为ClassName
的值为“选择一个”
如何使此占位符选择无效?您可以从模型属性中删除占位符,并将其放在帮助器中:
@Html.DropDownListFor(o => o.ClassName, new SelectList(Model.ClassList), "Select one")
您可以从模型属性中删除占位符并将其放入帮助器:
@Html.DropDownListFor(o=>o.ClassName,new SelectList(Model.ClassList),“Select one”)
@四十二谢谢,很好!我没有注意到助手过载。请加上这个作为答案,我会接受的。