zoukankan      html  css  js  c++  java
  • .Net Validator验证框架 [ .Net | Validator Framework | Attribute ]

    前言

         简单易用是.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(15)]
            
    public int Userpermission
            {
                
    get { return userpermission; }
                
    set { userpermission = value; }
            }

            
    #endregion

        }

          2.1.2  控制台测试类

            static void Main(string[] args)
            {

                IDictionary
    <stringobject> dict = new Dictionary<stringobject>();
                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

  • 相关阅读:
    基础知识
    贪心-合并区间、交集、无重叠区间、俄罗斯套娃信封
    递归实现煎饼排序
    递归实现基本计算器+-*/()
    滑动窗口---最小覆盖子串、字母异位词、
    二分查找
    N皇后
    二叉搜索树-合法性、增、删、查
    循环
    二分法
  • 原文地址:https://www.cnblogs.com/over140/p/1515892.html
Copyright © 2011-2022 走看看