验证 – ASP.Net MVC3电子邮件/电话数据注释不起作用

我的模型中有以下属性
[Required]
    [DataType(DataType.PhoneNumber,ErrorMessage = "Invalid Phone Number")]
    public string PhoneNumber
    {
        get;
        set;

    }

    [Required]
    [DataType(DataType.EmailAddress,ErrorMessage = "Invalid Email Address")]
    public string EmailAddress
    {
        get;
        set;

    }

相应的视图是

<td>
                    Email
                </td>
                <td>
                    @Html.EditorFor(model => model.EmailAddress)
                    @Html.ValidationMessageFor(model => model.EmailAddress,"*")
                </td>
            </tr>
            <tr>
                <td>
                    Phone #
                </td>
                <td>
                    @Html.TextBoxFor(model => model.PhoneNumber)
                    @Html.ValidationMessageFor(model => model.PhoneNumber,"*")
                </td>

当我呈现此页面时,我看到Required属性被触发.但是如果我输入无效数据,则DataType属性不会被触发.我看到源代码html,并且看不到任何代码被发出这些验证.
我也有以下作为我看法的一部分

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"/>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"/>

解决方法

看到这个帖子

Is the DataTypeAttribute validation working in MVC2?

请注意,DataType属性通常用于格式化,不用于验证.在技​​术上,有各种各样的电子邮件格式和电话号码格式(请参阅这里电子邮件:http://www.regular-expressions.info/email.html).

另外,自定义转换器可以将看似非电子邮件字符串转换成电子邮件(我在域名com = [email protected]),因此默认验证正则表达式从窗口中飞出.由开发人员使用正确的正则表达式来确定他们的具体目的,并确保他们只接受他们认为准确的地址.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....