asp.net C [DataType(DataType.EmailAddress)]和[EmailAddress]之间
[DataType(DataType.EmailAddress)]& [电子邮件地址].
在模型类中: C
public class MYViewModel {
[DataType(DataType.EmailAddress)] OR [E
我试图了解使用之间的主要区别
在模型类中: C public class MYViewModel { [DataType(DataType.EmailAddress)] OR [EmailAddress] public string Email { get; set; }我做了一个测试,这两个属性将执行以下操作: C >将阻止用户添加invalud电子邮件地址 但是我找不到有关功能的任何差异,当然如果我使用html.TextboxFor然后数据类型将没有任何效果,而如果我使用html.EditorFor然后数据类型数据注释将工作,但我说话关于技术实施方面的差异? 解决方法 希望这澄清……如您所述,DataType属性主要用于格式化,而不是验证.它似乎工作的原因是: > @ Html.EditorFor呈现HTML5< input type =“email”....这要求客户端/浏览器进行验证.如果浏览器符合,则发生客户端验证.它会“工作”,因为客户端为您验证了它(但这不是服务器端验证) 样品测试 给出一个类似这样的模型: 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”错误消息 心连心… (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用IIS7.5将网站中的URL绑定到另一个网站控
- asp.net-core – 编译netcoreapp1.0,代码包含#if!NETSTAND
- 如何解决.Net中冲突的程序集?
- asp.net-mvc – 是否有一个ASP MVC与JSTL标签等效?
- asp.net – 如何使用Inno Setup脚本创建IIS应用程序和应用程
- asp.net-mvc – 在Controller操作方法中重用代码的最佳方法
- asp.net-mvc – asp.net mvc 4从控制器按钮调用方法
- 有没有办法将内部控件放在ASP.NET自定义控件中?
- asp.net – 从单独的配置文件中读取设置
- asp.net – 允许服务器/ usercontrol上的任何属性/属性
- asp.net-mvc – ASP.Net 5中缺少FormCollections
- asp.net – MVC 4导出到CSV – 另存为对话框在Ch
- asp.net-core – 编译netcoreapp1.0,代码包含#if
- asp.net – axd和ashx处理程序之间的区别
- asp.net-mvc – ASP.NET MVC如何在生产中禁用调试
- 如何配置asp.net进程在域帐户下运行?
- 下载期间的ASP.net内存使用情况
- asp.net-core – 构建asp.net核心错误
- asp.net-mvc C 未在ELMAH中记录的错误
- asp.net-mvc-3 – 如何在ASP.NET MVC中创建递归结
- asp.net-core C 如何使用ASP.NET注册OData
- asp.net-mvc-3 C 如何从ASP.NET MVC#输出中
- asp.net-mvc C 已经使用相同的参数类型定义
- asp.net C MVC4 C ContextDependentView C
- ASP.Net C AJAX UpdatePanel中的Javascript
- asp.net-mvc C ASP.NET MVC中的WebApi [Fro
- asp.net-mvc C 使用AD的ASP.NET MVC表单Aut
- asp.net-mvc-4 C 在EF迁移配置类的Seed方法
- asp.net C 适用于多个用户的EWS通知中心
- asp.net-mvc C MVC应用程序中的随机数生成