Asp.net mvc 3 MVC3 DropDownList-如果仅显示1项,则不进行验证

Asp.net mvc 3 MVC3 DropDownList-如果仅显示1项,则不进行验证,asp.net-mvc-3,Asp.net Mvc 3,我有一个下拉列表中显示的项目列表……当我在视图中使用下面的代码时,使用(htmlattribute size=“4”) 验证有效…即整个列表以红色突出显示,并显示验证错误消息 但是,当我使用下面这一行时(htmlattribute size=“1”) 验证不起作用,并且在控制器中触发post操作 您知道如何让validatioin在任何时候只使用一个下拉列表显示的项目吗?您能在模型上显示您的System.ComponentModel.DataAnnotations。SelectedOptions

我有一个下拉列表中显示的项目列表……当我在视图中使用下面的代码时,使用(htmlattribute size=“4”)

验证有效…即整个列表以红色突出显示,并显示验证错误消息

但是,当我使用下面这一行时(htmlattribute size=“1”)

验证不起作用,并且在控制器中触发post操作


您知道如何让validatioin在任何时候只使用一个下拉列表显示的项目吗?

您能在
模型上显示您的
System.ComponentModel.DataAnnotations
。SelectedOptions
属性吗?当然[需要(ErrorMessage=“您必须至少选择一个选项。”)]public IEnumerable SelectedOptions{get;set;}尝试将中的模型中的
SelectedOptions
更改为
String
-或任何最能描述它的数据类型。换句话说,去掉可枚举定义。我怀疑{Size=1}期望从模型中获取/设置不可枚举的值。
@Html.DropDownListFor(x => x.SelectedOptions, new SelectList(Model.Options, "Id", "Value", Model.SelectedOptions), new { size = "4", style = "width: 160px" }) 
@Html.ValidationMessageFor(modelItem => Model.SelectedOptions)
@Html.DropDownListFor(x => x.SelectedOptions, new SelectList(Model.Options, "Id", "Value", Model.SelectedOptions), new { size = "1", style = "width: 160px" }) 
@Html.ValidationMessageFor(modelItem => Model.SelectedOptions)