具有不可选默认项的MVC下拉列表

时间:2015-03-26 14:34:04

标签: c# asp.net-mvc-4

我有一个简单的下拉列表,如下所示:

  

请选择,男,女

"请选择"默认选中(在创建时),但用户必须选择一个值,否则验证将失败。

如何在客户端实现此验证?模型中的[必需]似乎不起作用。

5 个答案:

答案 0 :(得分:0)

如果您在编辑器中检查值,可能会有效。 像:

return (!content.Equals("Please Select");

答案 1 :(得分:0)

不幸的是我无法发表评论所以我将不得不使用此建议,请不要因为这个原因而拒绝投票。 但是你不能让下拉列表有两个选项:MaleFemale,默认只是一个设置文本,因为默认是文本,而不是你可以使用的SelectedIndex要验证。你可以看到它被设置为if (dropdownlist.SelectedIndex != -1)

答案 2 :(得分:0)

要进行验证, JavaScript jQuery 将成为您的朋友。特别是对于验证,您可以通过几种方式实现。我将采取的方法是:

$('#drpExample').on('change', function () {
     var content = $(this).val();
     if(content === 'default') {
         // Default Selection, Display Error.
     }
});
正如你所看到的,

jQuery 确实简化了这一点。

答案 3 :(得分:0)

您可以使用RegularExpression属性,这样您就可以在客户端服务器端进行验证。< / p>

[RegularExpression(@"\b(Male|Female)", ErrorMessage = "Please Select, Male, Female")]
public string Gender{ get; set; }

答案 4 :(得分:0)

public class yourentity
{
     public SelectList GenderList { get; set; }
     [Required]
     public int gender { get; set; }
}

public ActionResult youraction()
{
    yourentity a = new yourentity();
    a.GenderList = new SelectList(new List<SelectListItem>
    {
        new SelectListItem { Text = "Male", Value = "1"},
        new SelectListItem { Text = "Female", Value ="2"},
    });
    return View(a);
}

在你看来

@Html.DropdownListFor(m=>m.gender,m.GenderList ,"Select Gender")
@Html.ValidationMessagefor(m=>m.gender)