Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
Jquery ASP.NET MVC客户端电子邮件验证不需要';行不通_Jquery_Asp.net Mvc_Regex_Asp.net Mvc 3_Validation - Fatal编程技术网

Jquery ASP.NET MVC客户端电子邮件验证不需要';行不通

Jquery ASP.NET MVC客户端电子邮件验证不需要';行不通,jquery,asp.net-mvc,regex,asp.net-mvc-3,validation,Jquery,Asp.net Mvc,Regex,Asp.net Mvc 3,Validation,在我的注册表单中,我想用MVC正则表达式进行一些客户端验证,但它不起作用。。。这是模型代码的一部分 [Required] [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Please enter a v

在我的注册表单中,我想用MVC正则表达式进行一些客户端验证,但它不起作用。。。这是模型代码的一部分

        [Required]
        [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Please enter a valid e-mail adress")]
        [DataType(DataType.EmailAddress)]
        [Display(Name = "Email address*")]
        public string Email { get; set; }
但是消息无论如何都不想出现。。。这里怎么了

编辑

在我看来,我有这个

            <div>
            <div class="editor-label">
                @Html.LabelFor(m => m.Email)
            </div>
            <div class="editor-field">
                @Html.TextBoxFor(m => m.Email)
                @Html.ValidationMessageFor(m => m.Email)
            </div>
            </div>

@LabelFor(m=>m.Email)
@Html.TextBoxFor(m=>m.Email)
@Html.ValidationMessageFor(m=>m.Email)
我还将jQuery库包括在我的布局中

<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>
    <link href="/Content/Site.css" rel="stylesheet" type="text/css" />
    <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
    <script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
    <script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="/Scripts/jquery.validate.min.js"></script>
    <script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
    @RenderSection("Head")
</head>

@视图包。标题
@渲染部分(“头”)
您还需要

1.
@Html.ValidationMessageFor(m=>m.Email)
在希望消息显示的视图中

2.包括客户端验证所需的JavaScript文件。如果您使用的是不引人注目的验证,那么这将是

jQuery, 
jQuery validate, 
jQuery validate unobtrusive 

按照这个顺序。

我终于明白了。。。 在RegularExpression属性解决问题后替换Required属性)

而是这个

        [Required]
        [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Please enter a valid e-mail adress")]

        [DataType(DataType.EmailAddress)]
        [Display(Name = "Email address*")]
        public string Email { get; set; }
现在我有

        [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Please enter a valid e-mail adress")]
        [Required]

        [DataType(DataType.EmailAddress)]
        [Display(Name = "Email address*")]
        public string Email { get; set; }

现在它工作得很好

只是一个小小的旁注。查看NuGet软件包DataAnnotationsExtensions。它有一个电子邮件数据注解,你可以使用:)请考虑替换你的基于ReGEX的电子邮件验证,因为它没有太多合法的地址,包括<代码> Foo+。bar@test.com,
foo@bar.museum
并且不会在应该失败的时候失败,就像
foo。。x@test.com
。我建议您使用一个强大的.NET组件,可以轻松地与ASP.NET MVC项目集成。免责声明:我是EmailVerify.NET的首席开发人员。如果你检查DOM,你能看到
data val regex pattern=“^([a-zA-Z0-9\-.]+@(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.\)([a-zA-Z0-9\-]+\.+)([a-zA-Z]{2,4}[0-9]{1,3}.[[0-9]}.]输入的FIrebug$”,我看不到它上面的代码,必需的
属性验证消息。