验证 – 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 = me@domain.com),因此认验证正则表达式从窗口中飞出.由开发人员使用正确的正则表达式来确定他们的具体目的,并确保他们只接受他们认为准确的地址.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...