• ASP.NET MVC3开发


    本文讲述在作者在使用.net mvc3进行开发的时候用到的两种调用远程验证的方法,第一种方法比较傻瓜,第二种方法方便好用,调用远程验证是个比较常见的验证方法,比如注册用户时的用户名唯一性验证。

    作者原创,转载请标明:http://www.kwstu.com/ArticleView/admin_20139251081022

    首先创建一个model类

    //用户注册
     
       public class UnitRegisterViewModel
       {
           public UnitRegisterViewModel() { }
           public string ID { set; get; }
           [Required(ErrorMessage = "{0}必须填写!")]
           [StringLength(50, MinimumLength = 1, ErrorMessage = "{0}必须在{2}至{1}位之间")]
           [DisplayName("单位名称")]
           [Remote("CheckUnitName", "Login")]
           public string UNITNAME { set; get; }
           [Required(ErrorMessage = "登录名必须填写")]
           [StringLength(20, MinimumLength = 6, ErrorMessage = "登录名必须在{2}至{1}位之间")]
           [CheckSameUsername(ErrorMessage = "{0}用户已被注册,请重新填写")]
           [DisplayName("登录名")]
           public string USERNAME { set; get; }
           [Required(ErrorMessage = "密码必须填写!")]
           [DisplayName("密码")]
           public string USERPASS { set; get; }
           [Required(ErrorMessage = "确认密码必须填写!")]
           [Compare("LOGINPASS", ErrorMessage = "密码和确认密码不一致,请重新输入")]
           [DisplayName("确认密码")]
           public string CONFIRMPASS { set; get; }
           }
    1.继承ValidationAttribute方法验证
    首先创建一个类

       

    //验证用户名数据库中是否存在
        public class CheckSameUsernameAttribute : ValidationAttribute
        {
            public override bool IsValid(object value)
            {
                if (value == null)
                {
                    return true;
                }
                KzrcwDbContent context = new KzrcwDbContent();
                string st = value.ToString();
                var res = context.UNIT_BASE.Where(m => m.LOGINNAME == st).Count();
                if (res == 0)
                {
                    return true;
                }
                return false;
            }
      }
    使用方法:
    [CheckSameUsername(ErrorMessage = "{0}用户已被注册,请重新填写")]
    public string USERNAME { set; get; }
    2.使用.net mvc3提供的Remote特性方法进行验证

    此种方法比较方便

    首先在Controller中创建一个验证方法

          

    public JsonResult CheckUnitName(string unitname)
     {
                List<UNIT_BASE> unit = db.UNIT_BASE.Where(c => c.NAME == unitname).ToList();
                if (unit.Count == 0)
                    return Json(true, JsonRequestBehavior.AllowGet);
                string suggestedUID = String.Format(CultureInfo.InvariantCulture,
                "{0}单位已存在,请直接登录。", unitname);
                return Json(suggestedUID, JsonRequestBehavior.AllowGet);
    }
    调用方法如下:
    [Remote("CheckUnitName", "Login")]
    public string UNITNAME { set; get; }
    笔者写作水平和技术水平有限,以上内容仅供参考!
  • 相关阅读:
    ReentrantReadWriteLock读写锁的使用
    Exchanger的使用
    CyclicBarrier的用法
    Semaphore的使用
    CountDownLatch的使用
    BlockingQueue的使用
    对字符串操作的各种笔试题
    struts2请求过程源码分析
    shell语法使用
    hibernate调用mysql存储过程
  • 原文地址:https://www.cnblogs.com/kwstu/p/3338206.html
Copyright © 2020-2023  润新知