C# 带有不可选择默认项的MVC Dropdownlist
我有一个简单的下拉列表,如下所示: 请选择,男,女 默认情况下(在创建时)选择“请选择”,但用户必须选择一个值,否则验证将失败C# 带有不可选择默认项的MVC Dropdownlist,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我有一个简单的下拉列表,如下所示: 请选择,男,女 默认情况下(在创建时)选择“请选择”,但用户必须选择一个值,否则验证将失败 如何在客户端实现此验证?模型中的[必需]似乎不起作用。如果您在编辑器中检查该值,它可能会起作用。 比如: 不幸的是,我还不能发表评论,所以我不得不用这个来建议,请不要仅仅因为这个原因而投反对票。 但是你不能让下拉列表有两个选项:Male和Female,默认值只是一个设置的文本,因为默认值是一个文本而不是一个SelectedIndex,你可以用它来验证。如果(dropdo
如何在客户端实现此验证?模型中的[必需]似乎不起作用。如果您在编辑器中检查该值,它可能会起作用。 比如:
不幸的是,我还不能发表评论,所以我不得不用这个来建议,请不要仅仅因为这个原因而投反对票。 但是你不能让下拉列表有两个选项:
Male
和Female
,默认值只是一个设置的文本,因为默认值是一个文本而不是一个SelectedIndex
,你可以用它来验证。如果(dropdownlist.SelectedIndex!=-1)要进行验证,JavaScript或jQuery将是您的朋友,您将能够看到它被设置为。特别是对于验证,您可以通过两种方式进行验证。我将采取的办法是:
$('#drpExample').on('change', function () {
var content = $(this).val();
if(content === 'default') {
// Default Selection, Display Error.
}
});
正如您所看到的,jQuery确实简化了这一点。您可以使用RegularExpression
属性,这样您将在客户端和服务器端进行验证
[RegularExpression(@"\b(Male|Female)", ErrorMessage = "Please Select, Male, Female")]
public string Gender{ get; set; }
“请选择”选项的值
属性是什么?它应该是一个空字符串。这足以触发所需的验证,因为空字符串不满足约束。绑定到的属性是什么?-假设它的[必需]字符串Gender{get;set;}
,那么@Html.DropwDownListFor(m=>m.Gender,new SelectList(新字符串[]{“男”,“女”}),“请选择”)@Html.ValidationMessageFor(m=>m.Gender)
就是您所需要的。
[RegularExpression(@"\b(Male|Female)", ErrorMessage = "Please Select, Male, Female")]
public string Gender{ get; set; }
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)