日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.Net Validator验证框架 [ .Net | Validator Framework | Attribute ]

發(fā)布時(shí)間:2024/4/15 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .Net Validator验证框架 [ .Net | Validator Framework | Attribute ] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引: 具體地址忘記了,我是以前存在window live?spaces 現(xiàn)在搬過來備份

(該文章在代碼范例上有些說明不全,看附件來補(bǔ)充對 C# Attribute 的應(yīng)用)

前言

???? 簡單易用是.Net Validator驗(yàn)證框架努力的目標(biāo)。基于Attribute驗(yàn)證器標(biāo)識(shí),豐富的驗(yàn)證返回類型,提供可擴(kuò)展的驗(yàn)證器接口......——又一個(gè)心愿和想法實(shí)質(zhì)性的開始,開心ing? :? )

?

正文

??????一、框架介紹

    本框架基于類屬性(Property)的Attribute驗(yàn)證器標(biāo)示,匹配屬性(Property)名和Form、QueryString中的Key以及服務(wù)器端控件的ID名稱,再根據(jù)驗(yàn)證器對數(shù)據(jù)進(jìn)行校驗(yàn)。

    驗(yàn)證器結(jié)構(gòu)圖

    ?

??????二、框架使用例子

    2.1  常規(guī)驗(yàn)證

      2.1.1  準(zhǔn)備Model類User,注意引用命名空間using Lasy.Validator;

?

代碼 1 public sealed class User
2   {
3   #region Member Variable
4   private string username;
5   private string email;
6   private int userpermission;
7   #endregion
8   #region Properties
9   /// <summary>
10   /// 用戶名
11   /// </summary>
12 ?  [Required]
13   public string Username
14   {
15   get { return username; }
16   set { username = value; }
17   }
18   /// <summary>
19   /// 電子郵箱
20   /// </summary>
21 ?  [Email]
22   public string Email
23   {
24   get { return email; }
25   set { email = value; }
26   }
27   /// <summary>
28   /// 用戶權(quán)限
29   /// </summary>
30 ?  [IntRange(1, 5)]
31   public int Userpermission
32   {
33   get { return userpermission; }
34   set { userpermission = value; }
35   }
36   #endregion
37   }

?

?

?

      2.1.2  控制臺(tái)測試類?

?

代碼 1  static void Main(string[] args)
2   {
3   IDictionary<string, object> dict = new Dictionary<string, object>();
4   dict.Add("Username", "over");
5   dict.Add("Email", "over140gmail.com");
6   dict.Add("Userpermission", "5");
7   Validator validator = new Validator(typeof(User));
8   Console.Write("Validator Result:");
9   Console.WriteLine(validator.Validate(dict).ErrorStringResult);
10   dict["Email"] = "over140@gmail.com";
11   Console.Write("Validator Result:");
12   Console.WriteLine(validator.Validate(dict).BoolResult);
13   Console.ReadLine();
14   }

?

?

?

      2.1.3  結(jié)果顯示截圖

      ?

    2.2  表單驗(yàn)證

      2.2.1  User類

?

代碼 1 class User
2   {
3   #region Member Variable
4   private string username;
5   private string password;
6   #endregion
7   #region Properties
8   /// <summary>
9   /// 用戶名
10   /// </summary>
11 ?  [Required]
12   [MinLength(5, FailKeyDesc = "用戶名")]
13   public string Username
14   {
15   get { return username; }
16   set { username = value; }
17   }
18   /// <summary>
19   /// 密碼
20   /// </summary>
21 ?  [Required]
22   public string Password
23   {
24   get { return password; }
25   set { password = value; }
26   }
27   #endregion
28   }

?

?

?

?      2.2.2  測試頁面

        login.aspx

<form id="form1" runat="server">

        ?用戶名:

<asp:TextBox ID="Username" runat="server"></asp:TextBox>
<br />

        密碼:

  <asp:TextBox ID="Password" runat="server"></asp:TextBox>
  <br />
  <asp:Button runat="server" Text="登錄驗(yàn)證" onclick="Unnamed1_Click" />
  </form>

?

?       ? 按鈕代碼

?

代碼 1   protected void Unnamed1_Click(object sender, EventArgs e)
2   {
3   //獲取表單所有元素 this.Controls[3].Controls
4 ?  if (new Validator(typeof(User)).Validate(this.Username, this.Password).BoolResult)
5   {
6   Response.Write("驗(yàn)證成功!");
7   }
8   else
9   {
10   Response.Write("驗(yàn)證失敗!");
11   }
12   }

?

?

      2.2.3  效果

?

  三、使用建議

    3.1  如果已經(jīng)做了客戶端校驗(yàn),服務(wù)器端從Request中提取表單數(shù)據(jù)進(jìn)行操作,可以直接使用Validator(Type type, bool checkAll, bool setDefaultValue)構(gòu)造函數(shù),然后從ValuesResult中取得已經(jīng)校驗(yàn)完畢IDictionary<string, object>數(shù)據(jù)。

    3.2  NoValidator與ValuesResult在提取表單數(shù)據(jù)時(shí)配套使用。

    3.3  調(diào)試的時(shí)候注意類的Attribute是靜態(tài)緩存的,需要清理或重新生成修改后的驗(yàn)證器標(biāo)識(shí)才管用!

?

  四、下載

    4.1  源代碼  Src

    4.2  文?? 檔  Lasy.Validator.chm

?

結(jié)束語

????? 雖然造輪子常常是一件吃力不討好的事情,但是懷著我覺得好用,或者想做一個(gè)好用的東東出來,推薦給朋友試試看的心情就會(huì)好很多,何況還是有許多熱心人提供寶貴的建議:? )

轉(zhuǎn)載于:https://www.cnblogs.com/dev-xp/archive/2010/10/29/1864607.html

總結(jié)

以上是生活随笔為你收集整理的.Net Validator验证框架 [ .Net | Validator Framework | Attribute ]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。