Validation 使用DataType.EmailAddress时出现奇怪的MVC 4验证行为

Validation 使用DataType.EmailAddress时出现奇怪的MVC 4验证行为,validation,asp.net-mvc-4,jquery-validate,data-annotations,unobtrusive-validation,Validation,Asp.net Mvc 4,Jquery Validate,Data Annotations,Unobtrusive Validation,我正在使用不引人注目的javascript和数据注释进行验证,效果很好。我决定用数据类型属性装饰视图模型属性。在大多数情况下,除了DataType.EmailAddress之外,这是可以接受的 当我添加这个属性时,我突然在这个字段上得到了额外的验证,这使得字段上出现了一个调用,有点像Ajax控件工具箱中的验证调用。只有样式与正在验证的图元有粗大的红色边框不同,详图索引在下面。调出还显示“我的视图模型”中未指定的消息。我用于验证的正则表达式有一条错误消息“您输入的电子邮件地址无效”,而标注中的消息

我正在使用不引人注目的javascript和数据注释进行验证,效果很好。我决定用数据类型属性装饰视图模型属性。在大多数情况下,除了DataType.EmailAddress之外,这是可以接受的

当我添加这个属性时,我突然在这个字段上得到了额外的验证,这使得字段上出现了一个调用,有点像Ajax控件工具箱中的验证调用。只有样式与正在验证的图元有粗大的红色边框不同,详图索引在下面。调出还显示“我的视图模型”中未指定的消息。我用于验证的正则表达式有一条错误消息“您输入的电子邮件地址无效”,而标注中的消息是“您必须输入有效的电子邮件地址”。我已尝试搜索此文本的解决方案,但未找到。最后,我只加载了以下脚本:

<script src="/Public/javascript/jquery-1.9.1.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-migrate-1.0.0.js"></script>
<script src="/Public/javascript/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
<script src="/Public/javascript/jquery.validate.js" type="text/javascript"></script>
 <script src="/Public/javascript/jquery.validate.unobtrusive.js" type="text/javascript"></script>

和css:

<link href="/Public/themes/ui-darkness/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css" />
<link href="/Content/PagedList.css" rel="stylesheet" type="text/css" />
    <link href="/Public/css/reset.css" rel="stylesheet" type="text/css" />

我还使用@Html.EditorFor在整个视图中呈现所有字段


有人能解释发生了什么事吗?这个标注是从哪里来的?我可以禁用它吗?我可以使用它,并在我的其他领域?我应该删除DataType.EmailAddress吗

在ASP.NET MVC 4中,当您使用
[DataType(DataType.EmailAddress)]
装饰属性时,相应的EditorFor将生成一个带有以下内容的输入字段:


这是一些现代浏览器支持的HTML5。因此,如果您碰巧使用现代浏览器浏览您的站点,此验证将自动内置。它与ASP.NETMVC完全无关。当然,如果浏览器不理解<代码>类型=“电子邮件”字段,它将简单地认为它是一个简单的文本字段。
以Google Chrome为例。

在ASP.NET MVC 4中,当您使用
[DataType(DataType.EmailAddress)]
装饰属性时,相应的EditorFor将生成一个带有以下内容的输入字段:


这是一些现代浏览器支持的HTML5。因此,如果您碰巧使用现代浏览器浏览您的站点,此验证将自动内置。它与ASP.NETMVC完全无关。当然,如果浏览器不理解<代码>类型=“电子邮件”字段,它将简单地认为它是一个简单的文本字段。
以谷歌Chrome浏览器为例。

很好,谢谢你刚刚发布的我发现了这个,如果我使用这个,我能在所有其他字段中得到同样的结果吗?我马上就要去上班了,在回家之前我是不会尝试的。很好的一个谢谢你就在你发帖子的时候我发现了这个,如果我用这个,我能在所有其他领域得到同样的东西吗?我就要去上班了,在回家之前我不能试一下。
<input type="email" name="foo" value="bar@baz.com" />