切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
C# 基础
Mybatis
ADO.NET
ASP.NET
Python 基础
Linq
Web Forms
.NET
Spring
SpringBoot
SpringCloud
.NET Core 中间件
Maven
.NET 类库
ASP.NET MVC
EF
NHibernate
WebApi
Java
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
服务端
ASP.NET MVC 模型的自定义验证
[TOC] ## CustomValidationAttribute 使用CustomValidationAttribute类实现模型的自定义验证,CustomValidationAttribute类继承了ValidationAttribute类 **命名空间:**System.ComponentModel.DataAnnotations ```csharp public CustomValidationAttribute(Type validatorType, string method); ``` ### 示例邮箱的验证 + 邮箱字段 ```csharp /// <summary> /// 邮箱验证 /// </summary> public interface _IF_AddressList { /// <summary> /// 邮箱 /// </summary> [CustomValidation(typeof(EmailValidation), "Email")] [MaxLength(200, ErrorMessage = "邮箱字段的长度不能超过200个字符串")] string Email { get; set; } } ``` + 验证邮箱的方法 ```csharp /// <summary> /// 邮箱验证 /// </summary> public static class EmailValidation { public static ValidationResult Email(string value) { var errors = new System.Text.StringBuilder(); if (value != null) { string email = @"^([\w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([\w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"; Regex Rg = new Regex(email); if (!Rg.IsMatch(value)) { errors.AppendLine("邮箱地址输入有误!"); } } if (errors.Length > 0) return new ValidationResult(errors.ToString()); else return ValidationResult.Success; } } ``` ### 示例重写IsValid + 使用重写IsValid方法来实现自定义模型的验证 ```csharp // 验证下拉选择必选值(选择的值必须大于0) public interface _IF_AddressList { /// <summary> /// 运营商 /// </summary> [RequiredSelect] [Display(Name = "运营商")] int Operators { get; set; } } ``` + 重写IsValid方法需要继承ValidationAttribute类 ```csharp /// <summary> /// 必须填写大于0的数值 /// </summary> [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)] public class RequiredSelect : ValidationAttribute { protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var errors = new System.Text.StringBuilder(); if (value != null) { int val = int.Parse(value.ToString()); if (val == 0) { errors.Append(validationContext.DisplayName + "必须选择!"); } } else { errors.AppendLine(validationContext.DisplayName + "必须选择!"); } if (errors.Length > 0) return new ValidationResult(errors.ToString()); else return ValidationResult.Success; } } ```
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号