加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 23:29:22 所属栏目:asp.Net 来源:网络整理
导读:我的模型中有以下属性 [Required] [DataType(DataType.PhoneNumber,ErrorMessage = "Invalid Phone Number")] public string PhoneNumber { get; set; } [Required] [DataType(DataType.EmailAddress,ErrorMessage = "Invalid Email Address")] public strin
我的模型中有以下属性
[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),因此默认验证正则表达式从窗口中飞出.由开发人员使用正确的正则表达式来确定他们的具体目的,并确保他们只接受他们认为准确的地址.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读