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

前端之家收集整理的这篇文章主要介绍了验证 – 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),因此默认验证正则表达式从窗口中飞出.由开发人员使用正确的正则表达式来确定他们的具体目的,并确保他们只接受他们认为准确的地址.

原文链接:https://www.f2er.com/aspnet/250436.html

猜你在找的asp.Net相关文章