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

简介:

一、框架介绍

    本框架基于类属性(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

本文转自博客园农民伯伯的博客,原文链接:.Net Validator验证框架 [ .Net | Validator Framework | Attribute ],如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
2天前
|
数据挖掘 定位技术
.NET Compact Framework下的GPS NMEA data数据分析(二)转
.NET Compact Framework下的GPS NMEA data数据分析(二)转
|
4天前
|
SQL Windows
保姆级:Windows Server 2012上安装.NET Framework 3.5
保姆级:Windows Server 2012上安装.NET Framework 3.5
|
8天前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
15天前
|
开发框架 .NET C#
探索VB.NET:了解.NET Framework下的Visual Basic
【4月更文挑战第27天】Visual Basic进化为VB.NET,融入.NET Framework,提供面向对象编程、泛型、LINQ等特性。VB.NET是强类型语言,支持类型推断,通过Windows Forms和WPF构建桌面应用。广泛应用于企业级、Web和数据处理开发,是易学且功能强大的编程工具。随着.NET版本更新,VB.NET的应用仍具价值,适合初学者和资深开发者。
|
2月前
|
开发框架 网络协议 .NET
深入.net框架
深入.net框架
12 0
|
2月前
|
Windows
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
230 0
|
3月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
NET Framework安装失败的麻烦
本人机子环境是安装了VS2012,即安装了 .NET Framework4.5,现在要安装AutoCAD2013,而安装CAD2013需要安装4.0的Framework,由于本机已有高版本的Framework,安装自然报错: 又不想来卸载4.5,觉得麻烦,但又想装上CAD2013,唯一的方法是修改Setup.ini初始化文件。
1014 0
|
4月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
46 0