如何强制选择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"

如何强制选择DropDownList值

您需要将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)