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

NetValidator是一款基于.NET平台的验证框架,支持Attribute标记验证,并提供多种验证类型如必填检查、邮箱格式验证等。该框架通过匹配属性名和表单数据进行数据校验,适用于Web表单验证等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

前言

     简单易用是.Net Validator验证框架努力的目标。基于Attribute验证器标识,丰富的验证返回类型,提供可扩展的验证器接口......——又一个心愿和想法实质性的开始,开心ing  :  )

 

正文

      一、框架介绍

    本框架基于类属性(Property)的Attribute验证器标示,匹配属性(Property)名和Form、QueryString中的Key以及服务器端控件的ID名称,再根据验证器对数据进行校验。

    验证器结构图

     

      二、框架使用例子

    2.1  常规验证

      2.1.1  准备Model类User,注意引用命名空间using Lasy.Validator;

     public   sealed   class  User
    {
        
#region  Member Variable

        
private   string  username;
        
private   string  email;
        
private   int  userpermission;

        
#endregion

        
#region  Properties

        
///   <summary>
        
///  用户名
        
///   </summary>
        [Required]
        
public   string  Username
        {
            
get  {  return  username; }
            
set  { username  =  value; }
        }
        
///   <summary>
        
///  电子邮箱
        
///   </summary>
        [Email]
        
public   string  Email
        {
            
get  {  return  email; }
            
set  { email  =  value; }
        }

        
///   <summary>
        
///  用户权限
        
///   </summary>
        [IntRange( 1 5 )]
        
public   int  Userpermission
        {
            
get  {  return  userpermission; }
            
set  { userpermission  =  value; }
        }

        
#endregion

    }

      2.1.2  控制台测试类

         static   void  Main( string [] args)
        {

            IDictionary
< string object >  dict  =   new  Dictionary < string object > ();
            dict.Add(
" Username " " over " );
            dict.Add(
" Email " " over140gmail.com " );
            dict.Add(
" Userpermission " " 5 " );

            Validator validator 
=   new  Validator( typeof (User));

            Console.Write(
" Validator Result: " );
            Console.WriteLine(validator.Validate(dict).ErrorStringResult);

            dict[
" Email " =   " over140@gmail.com " ;

            Console.Write(
" Validator Result: " );
            Console.WriteLine(validator.Validate(dict).BoolResult);

            Console.ReadLine();
        }

      2.1.3  结果显示截图

       

    2.2  表单验证

      2.2.1  User类

class  User
{
    
#region  Member Variable

    
private   string  username;

    
private   string  password;

    
#endregion

    
#region  Properties

    
///   <summary>
    
///  用户名
    
///   </summary>
    [Required]
    [MinLength(
5 , FailKeyDesc  =   " 用户名 " )]
    
public   string  Username
    {
        
get  {  return  username; }
        
set  { username  =  value; }
    }

    
///   <summary>
    
///  密码
    
///   </summary>
    [Required]
    
public   string  Password
    {
        
get  {  return  password; }
        
set  { password  =  value; }
    }

    
#endregion
}

       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 = " 登录验证 "  onclick = " Unnamed1_Click "   />
    
</ form >

          按钮代码

     protected   void  Unnamed1_Click( object  sender, EventArgs e)
    {
        
// 获取表单所有元素 this.Controls[3].Controls
         if  ( new  Validator( typeof (User)).Validate( this .Username,  this .Password).BoolResult)
        {
            Response.Write(
" 验证成功! " );
        }
        
else
        {
            Response.Write(
" 验证失败! " );
        }
    }

      2.2.3  效果

 

  三、使用建议

    3.1  如果已经做了客户端校验,服务器端从Request中提取表单数据进行操作,可以直接使用Validator(Type type, bool checkAll, bool setDefaultValue)构造函数,然后从ValuesResult中取得已经校验完毕IDictionary<string, object>数据。

    3.2  NoValidator与ValuesResult在提取表单数据时配套使用。

    3.3  调试的时候注意类的Attribute是静态缓存的,需要清理或重新生成修改后的验证器标识才管用!

 

  四、下载

    4.1  源代码  Src

    4.2  文   档  Lasy.Validator.chm

 

结束语

      虽然造轮子常常是一件吃力不讨好的事情,但是怀着我觉得好用,或者想做一个好用的东东出来,推荐给朋友试试看的心情就会好很多,何况还是有许多热心人提供宝贵的建议:  )

 

 

本博其他你可能感兴趣的文章

 

      1.      NOD32升级账号更新器 [ C# | NOD32 | Eset ]

      2.      用Visual Studio 2005/2008提取EXE文件中的资源[图片|htm|光标文件]

      3.      新浪Flash下载器 [HttpWebRequest | 新浪视频]

      4.      笨笨图片批量下载器 V0.3 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程] new

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值