Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有不可选择默认项的MVC Dropdownlist_C#_Asp.net Mvc 4 - Fatal编程技术网

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)