如何强制选择DropDownList值
本文关键字:DropDownList 选择 何强制 | 更新日期: 2023-09-27 18:21:43
我有一个DropDownList,它给我一个输出:
<select name="MyFilter">
<option value="">Choose an option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
我想强制用户选择一个有值的选项。
我该怎么做?最好的方法是什么?我知道MVC有像〔Required〕这样的属性,但你不是在数据库中创建新行,而是在更新一行,所以Required在这里不起作用(我想,我对属性不太熟悉)。我需要自定义属性吗?
我只是想在这里被指向正确的方向,因为到目前为止我的谷歌搜索一直没有结果。。。
编辑:
我添加了:
[Required]
public SelectList MyFilter { get; set; }
到ViewModel,但它没有更改功能。它仍然允许表单通过。这可能是因为我在视图中添加了这样的"选择选项"选项吗?
@Html.DropDownList("MyFilter", ((SelectList)Model.MyFilter), "Choose an option"
您需要将Required属性应用于将保存所选值的属性,而不是应用于选择列表本身:
public class ViewModel
{
public IList<SelectListItem> MyFilterValues { get; set; }
[Required]
public int MyFilter { get; set; }
}
视图中的用法:
@Html.DropDownListFor(m=>m.MyFilter, Model.MyFilterValues, "Choose an option")
@Html.ValidationMessageFor(m => m.MyFilter)