加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – [DataType(DataType.EmailAddress)]和[EmailAddress]之间

发布时间:2021-03-31 02:38:36 所属栏目:asp.Net 来源:互联网
导读:我试图了解使用之间的主要区别 [DataType(DataType.EmailAddress)] [电子邮件地址]. 在模型类中: – public class MYViewModel {[DataType(DataType.EmailAddress)] OR [EmailAddress]public string Email { get; set; } 我做了一个测试,这两个属性将执行以

我试图了解使用之间的主要区别
[DataType(DataType.EmailAddress)]& [电子邮件地址].

在模型类中: –

public class MYViewModel {
[DataType(DataType.EmailAddress)] OR [EmailAddress]
public string Email { get; set; }

我做了一个测试,这两个属性将执行以下操作: –

>将阻止用户添加invalud电子邮件地址
>将值显示为“EmailTo:…”

但是我找不到有关功能的任何差异,当然如果我使用html.TextboxFor然后数据类型将没有任何效果,而如果我使用html.EditorFor然后数据类型数据注释将工作,但我说话关于技术实施方面的差异?

解决方法

希望这澄清……

如您所述,DataType属性主要用于格式化,而不是验证.它似乎工作的原因是:

> @ Html.EditorFor呈现HTML5< input type =“email”....这要求客户端/浏览器进行验证.如果浏览器符合,则发生客户端验证.它会“工作”,因为客户端为您验证了它(但这不是服务器端验证)
您可以通过在视图中将@ Html.EditorFor更改为@ Html.TextBoxFor来测试它,这会将输入字段呈现为< input type =“text”...> (标准文本输入字段,而不是HTML5电子邮件).

样品测试

给出一个类似这样的模型:

public class User
{
    [Required(ErrorMessage = "Email must be provided")]
    [DataType(DataType.EmailAddress,ErrorMessage = "this doesn't do email format validation")]        
    [EmailAddress(ErrorMessage = "Not a valid Email")] //Comment un-comment to see effect
    public string EmailAddress { get; set; }

    [Required(ErrorMessage = "Name must be provided")]        
    public string Name { get; set; }
}

使用@ Html.TextBoxFor代替@ Html.EditorFor的视图在测试中取出HTML5客户端验证:

@Html.TextBoxFor(model => model.EmailAddress,....

像这样的控制器:

public ActionResult CheckUser(User user)
{
    ViewBag.Foo = string.Empty;
    if(Request.HttpMethod == HttpMethod.Post.ToString())
    {
        ViewBag.Foo = ModelState.IsValid ? "User Model validated" : "Failed Model Validation";
    }
    return View();
}

如果你:

>注释掉[EmailAddress]属性,只保留[DataType(DataType.EmailAddress)]您的模型对任何文本都有效(无电子邮件格式验证)

>如果你把“foo”你的模型“有效”,没有错误信息.

>保留它,您将获得“服务器端”电子邮件格式验证

>如果您输入“foo”,它将失败并显示“Not a valid Email”错误消息

心连心…

(编辑:商洛站长网)

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

    推荐文章
      热点阅读