Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.NET MVC中验证时拒绝下拉占位符_Asp.net_Asp.net Mvc_Validation_Asp.net Mvc 4_Html.dropdownlistfor - Fatal编程技术网

在ASP.NET MVC中验证时拒绝下拉占位符

在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的第一个元素设置为占位符字符串“选择一个”

在我的ASP.NET MVC4模型中,我有一个必需的属性:

[必需(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”)
@四十二谢谢,很好!我没有注意到助手过载。请加上这个作为答案,我会接受的。