MVC 的校验很强大,自己带的校验就足够我们使用了,下面分别介绍前后台校验:
首先在介绍校验之前先说下. NET 框架中的 System.ComponentModel.DataAnnotations 命名空间包括了众多可为你所用的内置验证特性,介绍用的最多的其中的四个:[Required]:表示此字段必须是有值的;
[StringLength]:规定字段的长度;
[Range]:规定字段的范围;
[RegularExpression]:字段符合的正字表达式。
比如我们在 Model 里创建了一个 UserInfo 类:
- public class UserInfo
- {
- public int Id { get; set; }
- [StringLength(10,ErrorMessage = "*长度必须<10")] //表示长度必须小于10
- [Required(ErrorMessage = "*必填姓名")] //表示名称必填
- public string UserName { get; set; }
- [RegularExpression(@"^\d+$")] //表示必须符合这个正则表达式(必须是数字)
- [Range(20,120)] //表示在20到120这个范围之间
- [Required(ErrorMessage = "*")] //表示必须有值
- public int Age { get; set; }
- }
一. 前台校验
在建好 model 并且写上要约束的条件之后,我们要想在前台校验,必须在前台引入对应的 js 脚本:
引入脚本之后我们在前台就可以校验了,如:
二. 后台校验
后台校验就更加方便了,只要在后台写上:
//ModelState.IsValid=true 那么校验就是成功的。
if (ModelState.IsValid)
{
}
就可以了,我们把校验成功之后要执行的代码放到 if 里就可以,再也不需要一个一个字段去校验了,省去了很多麻烦和代码。
MVC 的校验是不是很强大且简单呀。
补充:1.webConfig 中可以设置全局客户端校验是否开启或者关闭。微软默认 ClientValidationEnabled 为 ture 就是校验前台客户端,
如果把 ClientValidationEnabled 改为 false,就是所有的前台客户端都不校验。
2. 也可以设置某一个页面不校验。就是在对应页面加下面红框里的一句话,不写或写为 true 就是校验,false 为不校验。
来源: https://www.2cto.com/kf/201712/704873.html