验证Html.DropDownListFor,当httpPost时不发送默认值

本文关键字:默认值 httpPost Html DropDownListFor 验证 | 更新日期: 2023-09-27 18:04:02

我有这个dropDownListFor:

@Html.DropDownListFor(m => m.ChoosenThemeSetting, Model.ThemeSettings.Select(k => new SelectListItem { Text = k.ChoosenTheme, Value = k.ChoosenTheme, }), "-- Select here --", new { @class = "form-control", id = "colorIfZero" })

在代码中,我设置了"——Select here——"作为默认值。如果我在我的下拉菜单中没有选择任何其他的默认值,默认值将被发送到我的[httpPost]-方法。

有什么方法来验证这个吗?比如:如果selected value是我的默认值,给我一个验证消息,让我从下拉菜单中选择一些东西。因为我的默认"——选择这里——"我不想发送到我的[httpPost]

验证Html.DropDownListFor,当httpPost时不发送默认值

问题解决感谢这个链接:http://forums.asp.net/t/1580133.aspx?DropDownListFor+validation。谢谢你,拉维卡塔!

通过将拥有choosenthemessetting属性的模型类设置为

    [Required]
    [DisplayName("")]
    public string ChoosenThemeSetting { get; set; }

然后改变我的下拉菜单代码为这个(注意字符串。empty-line)

@Html.DropDownListFor(m => m.ChoosenThemeSetting, Model.ThemeSettings.Select(k => new SelectListItem { Text = k.ChoosenTheme, Value = k.ChoosenTheme, }), string.Empty, new { @class = "form-control", id = "colorIfZero" })

一切都很好!现在我得到一个validationmessage,从我的下拉菜单

中选择一些值