MVC4数据注解和验证
在传统的asp.net开发中,数据的验证一直是个火热的话题,无论是客户端进行验证还是服务器进行验证,通常我们都会为了一个简单的业务而要去写非常复杂的验证方法。在MVC中,MVC为我们提供了各种数据注解和数据验证的特性,很方便的让我们能实现数据验证这一繁琐的工作,以下是我整理的常见的数据注解和验证的DOME!注:自定义验证特性并未写在此篇中!
model中的验证注解特性:
public class StuInfo { public int ID { get ; set ;} [Display(Name = "姓名" )] //设置要显示的字段名 [Required(ErrorMessage = "您需要填写{0}" )] //设置为必须字段 已经错误提示 [StringLength(50, MinimumLength = 3)] //设置最大长度和最小长度 public string Name { get ; set ;} [Display(Name = "年龄" )] [Range(1, 150, ErrorMessage = "年龄填写不正确!" )] //设置 值范围 public int Age { get ; set ;} [Display(Name = "身高" )] [Range( typeof ( decimal ), "50.00" , "250.00" ,ErrorMessage = "身高超出指定范围" )] public decimal Height { get ; set ;} [Display(Name = "生日" )] [DataType(DataType.Date,ErrorMessage = "{0}格式不正确" )] //设置数据类型以及错误提示 public DateTime Birthday { get ; set ;} [Display(Name = "电话" )] [Remote( "CheckPhone" , "StuInfo" , ErrorMessage = "{0}已被注册" )] //在指定的Conteroller中的通道(route)中验证数据 public string Phone { get ; set ;} [Display(Name = "地址" )] [DataType(DataType.MultilineText)] public string Address { get ; set ;} [Display(Name = "电子邮箱" )] [RegularExpression( @"(\w)+(\.\w+)*@(\w)+((\.\w+)+)" ,ErrorMessage = "{0}格式不正确" )] //正则验证 public string Email { get ; set ;} [Display(Name = "再次输入电子邮箱" )] [Compare( "Email" ,ErrorMessage = "{0}两次输入不一致" )] //设置比较两个字段的值 public string EmailConfirm { get ; set ;} [Display(Name = "密码" )] [DataType(DataType.Password)] public string Password { get ; set ;} [Display(Name = "备用电子邮箱" )] [DataType(DataType.EmailAddress,ErrorMessage = "{0}格式不正确" )] public string email_B { get ; set ;} } |
远程验证的通道:
public JsonResult CheckPhone( string phone) { var result= StuInfoBll.FindPhone(phone).count == 0; return Json(result, JsonRequestBehavior.AllowGet); } |
效果:
正常下的网页:
值范围、值类型验证效果:
正则验证和比较字段值效果:
数据类型验证效果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 精选 4 款免费且实用的数据库管理工具,程序员必备!
· Cursor:一个让程序员“失业”的AI代码搭子
· MCP开发应用,使用python部署sse模式
· 重生之我是操作系统(七)----内存管理(上)
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(6)