介紹
Validate.Net是借助Validate.js的思想開發的一套.Net服務端數據校驗插件,可以更方便高效的校驗實體內的屬性值是否合法。內置多種常規數據校驗規則(必填、字符串長度區間、字符串最大最小長度、最大最小值、值區間、Email、郵編、url、正整數、負整數、非正整數、非負整數、ip地址、qq、身份證號碼、統一社會信用代碼,常規密碼)。支持自定義正則校驗、方法重寫等擴展校驗。是做后端開發的必備利器。
軟件架構
.netframework4.5以上、反射、特性

安裝教程
1. 項目中引用:Validate.Net.dll(文件在目錄Validate.Net\bin\Release\下);

點擊下載該Validate.Net.dll 提取碼 nloo
2. 導入命名空間:using Validate.Net;
3. gitee地址
https://gitee.com/lkings/Validate.Net
4. 后續將支持nuget安裝
使用說明
實體類示例代碼
1 public class UserModel 2 { 3 /// <summary> 4 /// 校驗必填,如果添加特性[Describe],則校驗該屬性不合法時 5 /// 錯誤提示信息則是:屬性:密碼,值:xxxx, 不正確,而不是屬性:Password,值:xxxx 不正確 6 /// </summary> 7 [ValidateRequired] 8 [Describe("密碼")] 9 public string Password { get; set; } 10 11 /// <summary> 12 /// 校驗字符串長度區間 13 /// </summary> 14 [ValidateRangeLength(6, 20)] 15 [Describe("用戶賬戶")] 16 public string Account { get; set; } 17 18 /// <summary> 19 /// 校驗字母,只能包含字母 20 /// </summary> 21 [ValidateLetter] 22 public string Letter { get; set; } 23 24 /// <summary> 25 /// 校驗最大值 26 /// </summary> 27 [ValidateMaxValue(20)] 28 public int Age { get; set; } 29 30 /// <summary> 31 /// 校驗最小值 32 /// </summary> 33 [ValidateMinValue(5)] 34 public int MinLong { get; set; } 35 36 /// <summary> 37 /// 校驗值區間 38 /// </summary> 39 [ValidateRangeValue(10,20)] 40 public int AgeRange { get; set; } 41 42 /// <summary> 43 /// 校驗最大長度 44 /// </summary> 45 [ValidateMaxLength(20)] 46 public string MaxLength { get; set; } 47 48 /// <summary> 49 /// 校驗最小長度 50 /// </summary> 51 [ValidateMinLength(5)] 52 public string MinLength { get; set; } 53 54 /// <summary> 55 /// 校驗Email 56 /// </summary> 57 [ValidateEmail] 58 public string Email { get; set; } 59 60 /// <summary> 61 /// 校驗郵編 62 /// </summary> 63 [ValidateZipCode] 64 public string ZipCode { get; set; } 65 66 /// <summary> 67 /// 校驗包含中文 68 /// </summary> 69 [ValidateChinese] 70 public string Chinese { get; set; } 71 72 /// <summary> 73 /// 校驗負整數 74 /// </summary> 75 [ValidateNegtiveInt] 76 public int NegtiveInt { get; set; } 77 78 /// <summary> 79 /// 校驗正整數 80 /// </summary> 81 [ValidatePositiveInt] 82 public int PositiveInt { get; set; } 83 84 /// <summary> 85 /// 校驗非負整數 86 /// </summary> 87 [ValidateNonnegativeInt] 88 public double NonnegativeInt { get; set; } 89 90 /// <summary> 91 /// 校驗非正整數 92 /// </summary> 93 [ValidateNonpositiveInt] 94 public double NonpositiveInt { get; set; } 95 96 /// <summary> 97 /// 校驗ip地址 98 /// </summary> 99 [ValidateIp] 100 public string Ip { get; set; } 101 102 /// <summary> 103 /// 校驗url 104 /// </summary> 105 [ValidateUrl] 106 public string url { get; set; } 107 108 /// <summary> 109 /// 校驗qq號 110 /// </summary> 111 [ValidateQQ] 112 public string QQ { get; set; } 113 114 /// <summary> 115 /// 自定義正則校驗,特性[ValidateRegular]為自定義正則表達式校驗 116 /// 第一個參數為您的正則表達式,第二個參數為自定義校驗不合法時的提示信息 117 /// </summary> 118 [ValidateRegular("^[0-9]{6}$", "郵編格式校驗失敗(自定義)")] 119 public string CustomStr { get; set; } 120 121 /// <summary> 122 /// 校驗身份證(15位身份證號,和18位身份證號) 123 /// </summary> 124 [ValidateIDCard] 125 public string IDCard { get; set; } 126 127 /// <summary> 128 /// 校驗統一社會信用代碼 129 /// </summary> 130 [ValidateSocialCreditCode] 131 public string SocialCreditCode { get; set; } 132 133 /// <summary> 134 /// 一般密碼校驗(包含數字和字母及常規特殊符號) 135 /// </summary> 136 [ValidatePwd] 137 public string Pwd { get; set; } 138 }
調用示例
1 static void Main(string[] args) 2 { 3 UserModel user = new UserModel() 4 { 5 Account = "1000", 6 Password = "", 7 Email = "77111.cn", 8 ZipCode = "6572151", 9 Chinese = "wjl", 10 NegtiveInt = 1, 11 PositiveInt= -2, 12 Ip = "192.0.0.256", 13 url = "https://www.baidu.com", 14 CustomStr = "657215@", 15 MaxLength = null, 16 Age = 100, 17 Letter = "www", 18 MinLong = 0, 19 AgeRange = 0, 20 MinLength = "123456", 21 QQ = "13155654521", 22 IDCard = "2102111972110408721", 23 SocialCreditCode = "91350500611880326T", 24 Pwd = "wjl1345", 25 NonpositiveInt = -66.1, 26 NonnegativeInt = 66.1, 27 }; 28 29 if (!user.Validate<UserModel>(out List<string> errorList)) 30 { 31 foreach (string error in errorList) 32 { 33 Console.WriteLine($"{error}\r\n"); 34 } 35 } 36 Console.ReadLine(); 37 }
執行結果
屬性:密碼 - 值: 錯誤信息: 校驗必填項失敗
屬性:用戶賬戶 - 值:1000 錯誤信息: 長度范圍為:[6—20]
屬性:Age - 值:100 錯誤信息: 最大值為:20
屬性:MinLong - 值:0 錯誤信息: 最小值為:5
屬性:AgeRange - 值:0 錯誤信息: 值范圍為:[10—20]
屬性:Email - 值:77111.cn 錯誤信息: 郵箱格式校驗失敗
屬性:ZipCode - 值:6572151 錯誤信息: 郵政編碼格式校驗失敗
屬性:Chinese - 值:wjl 錯誤信息: 中文校驗失敗(必須包含中文)
屬性:NegtiveInt - 值:1 錯誤信息: 負整數校驗失敗
屬性:PositiveInt - 值:-2 錯誤信息: 正整數校驗失敗
屬性:Ip - 值:192.0.0.256 錯誤信息: 校驗ip失敗
屬性:CustomStr - 值:657215@ 錯誤信息: 郵編格式校驗失敗(自定義)
屬性:IDCard - 值:2102111972110408721 錯誤信息: 校驗身份證合法性失敗
屬性:Pwd - 值:wjl1345 錯誤信息: 一般密碼校驗失敗(包含數字和字母及常規特殊符號)