ASP.NET MVC3开发 - CodeFisrt数据库篇之M层验证之调用远程方法(Remote)验证

来源:互联网 发布:mac运行32位软件 编辑:程序博客网 时间:2024/06/16 02:32

首先创建一个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; }
笔者写作水平和技术水平有限,以上内容仅供参考!
0 0