asp.net – [DataType(DataType.EmailAddress)]和[EmailAddress]之间
|
我试图了解使用之间的主要区别
在模型类中: – public class MYViewModel {
[DataType(DataType.EmailAddress)] OR [EmailAddress]
public string Email { get; set; }
我做了一个测试,这两个属性将执行以下操作: – >将阻止用户添加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”错误消息 心连心… (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何将MVC 5 IdentityModels.cs移动到单独的
- asp.net – 为什么Global.asax事件在我的ASP.NET网站没有触
- Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附
- asp.net-mvc – SelectListItem中的Selected属性永远不会起
- asp.net-mvc – 为什么这个路由参数被添加到查询字符串中?
- ASP.NET成员:拒绝用户阻止CSS,页面无法正确呈现?
- asp.net-core – 我为什么要选择带有.Net核心的ASP.NET Cor
- asp.net – 从多个Web.config文件访问appSettings
- ASP.NET core Web中使用appsettings.json配置文件的方法
- asp.net – MVC 3,(razor)加载部分与验证
- asp.net-mvc – MVC3验证与实体框架模型/数据库首
- asp-classic – 如何使用AES在VBScript中进行加密
- ASP.NET MVC API 接口验证的示例代码
- asp.net – 如何访问Global.asax静态成员?
- asp.net – System.Security.SecurityException?
- 向.NET电子邮件添加附件
- asp.net-web-api – 首先使用ASP.NET Web API的E
- ASP.NET成员:拒绝用户阻止CSS,页面无法正确呈现
- asp.net-mvc – 通过Gitignore递归地包含Nuget D
- asp.net – 如何扩展aspnet成员身份验证表?
