标签:
using System.ComponentModel.DataAnnotations; //字段显示名称 [Display(Name = "用户名")] //数据类型(比如生成的文本框的类型) [DataType(DataType.Password)] //非空验证 [Required(ErrorMessage = "*")] //字符长度验证 [StringLength(50, ErrorMessage = "字符长度应在6-50之间", MinimumLength = 6)] //验证范围 [Range(10, 120, ErrorMessage = "年龄应在10-120之间")] //正则表达式验证 [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9._]+\.[A-Za-z]{2,4}", ErrorMessage = "邮箱格式不正确")] //邮箱格式验证 [EmailAddress(ErrorMessage = "邮箱格式不正确")]
其中:ErrorMessage里面是自定义错误信息,如果不加这个属性,将显示系统默认的提示错误信息(系统提示比较生硬可能),一般都加上这个属性。
ErrorMessage允许开发者使用{0}占位符来显示字段的显示名(即[Display(Name = "用户名")]),如果没有Display特性,那么会显示属性名。如:
[Required(ErrorMessage = "{0}不能为空!")] [Display(Name = "用户名")] public string UserName { get; set; }
如果验证的特性中还有其他参数,那么ErrorMessage可以用占位符直接显示其他参数,如:
[Required] [StringLength(100, ErrorMessage = "请输入{2}到{1}位的{0}。", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "密码")] public string Password { get; set; } //系统会提示:“请输入6到100位的密码”。
附加验证是System.Web.Mvc中额外添加的两个验证特性,所以使用时必须添加using System.Web.Mvc
[Required] [Display(Name = "用户名")] [Remote("CheckUserName","Account")] public string UserName { get; set; }
Controller:
public JsonResult CheckUserName(string userName) { var result = userName == "admin"; return Json(result, JsonRequestBehavior.AllowGet); }
验证结果:
注意:如果要Post提交,则需要加上HttpMethod=“POST”:
[Display(Name = "用户名")] [Remote("CheckUserName","Account", HttpMethod="POST")] public string UserName { get; set; }
而Controller中也可以直接接受Post的请求,当然你加上[Httppost]也是可以的:
//[HttpPost] public JsonResult CheckUserName(string userName) { var result = userName != "admin"; return Json(result, JsonRequestBehavior.AllowGet); }
2、Compare(相同验证)
Compare特性是用来验证输入的两个数据是否完全相同。最典型的例子就是注册时两次输入的密码是否相同。
[Required] [StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符。", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "密码")] public string Password { get; set; } [DataType(DataType.Password)] [Display(Name = "确认密码")] [Compare("Password", ErrorMessage = "密码和确认密码不匹配。")] public string ConfirmPassword { get; set; }
验证结果:
上面的是mvc框架的几种常用的数据注解,除了后两种mvc特有的特性,其他的特性都在System.ComponentModel.DataAnnotations中。
MVC-Model数据注解(一)-系统(DataAnnotations)
标签:
原文地址:http://www.cnblogs.com/yaosuc/p/4527886.html