mvc的验证(validation)分服务端验证和客户端验证,虽然有许多已经定义好的验证如 [Required]等,但每个人总有各自独特的需求,所以这时候我们可以来实现自己的验证特性。
实现服务端验证
- 继承validationAttribute 类;
- 重写 IsValid和 FormatErrorMessage两个方法, IsValid实现自己的验证判断逻辑,FormatErrorMessage返回出错时的自定义错误信息。
实现客户端验证(参考)
- 实现IClientValidatable接口;
- 重写 public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) 方法;
- 扩展客户端方法,使用客户端验证框架 unobtrusive
ps:还可以自定义模型元数据提供器,用于规范显示到前台的内容