Model中参加验证

tech2022-09-21  101

在Model中参加验证标识表记标帜

MVC3项目模板自带的登录模型类如下:

public class LogOnModel { [Required] [Display(Name = "User name")] public string UserName { get; set; } [Required] [DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } [Display(Name = "Remember me?")] public bool RememberMe { get; set; } }

对比通俗的C#类,我们发明每个属性上都多了被方括号“[]”包抄的标识表记标帜。此中,[Required]是验证标识表记标帜的一种,而[Display]、[DataType]则是为了显示对应的HTML控件,这不在本文评论辩论局限之内。 除了Required,我们还可以在Model中添加其他有效的验证标识表记标帜。下面是个较完全的列表: Model类中可以添加的验证标识表记标帜:

必填字段 [Required] public string FirstName { get; set; } 字段长度至多n位: [StringLength(160)] public string FirstName { get; set; }

请求至少n位:

[StringLength(160, MinimumLength=3)] public string FirstName { get; set; } 正则验证 [RegularExpression(@”[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/.[A-Za-z]{2,4}”)] public string Email { get; set; } 局限 [Range(35,44)] public int Age { get; set; }

小数的景象:

[Range(typeof(decimal), “0.00”, “49.99”)] public decimal Price { get; set; } 办事端参与的验证 [Remote(“CheckUserName”, “Account”)] public string UserName { get; set; } 然后在AccountController里指定一个CheckUserName办法: public JsonResult CheckUserName(string username) { var result = Membership.FindUsersByName(username).Count == 0; return Json(result, JsonRequestBehavior.AllowGet); } 斗劲 [RegularExpression(@”[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/.[A-Za-z]{2,4}”)] public string Email { get; set; } [Compare(“Email”)] public string EmailConfirm { get; set; } 自定义错误消息 正则: [RegularExpression(@”[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/.[A-Za-z]{2,4}”, ErrorMessage=”Email doesn’t look like a valid email address.”)] public string Email { get; set; }

通俗文本:

[Required(ErrorMessage=”Your last name is required”)] [StringLength(160, ErrorMessage=”Your last name is too long”)] public string LastName { get; set; }

占位符:

[Required(ErrorMessage=”Your {0} is required.”)] [StringLength(160, ErrorMessage=”{0} is too long.”)] public string LastName { get; set; }
最新回复(0)