ASP.NET MVC3开发 - CodeFisrt数据库篇之M层验证之调用远程方法(Remote)验证
本文讲述在作者在使用.net mvc3进行开发的时候用到的两种调用远程验证的方法,第一种方法比较傻瓜,第二种方法方便好用,调用远程验证是个比较常见的验证方法,比如注册用户时的用户名唯一性验证。
作者原创,转载请标明:http://www.kwstu.com/ArticleView/admin_20139251081022
首先创建一个model类
//用户注册 public class UnitRegisterViewModel
{
public UnitRegisterViewModel() { }
public string ID { set; get; }
[Required(ErrorMessage = "{0}必须填写!")]
[StringLength(, MinimumLength = , ErrorMessage = "{0}必须在{2}至{1}位之间")]
[DisplayName("单位名称")]
[Remote("CheckUnitName", "Login")]
public string UNITNAME { set; get; }
[Required(ErrorMessage = "登录名必须填写")]
[StringLength(, MinimumLength = , 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 == )
{
return true;
}
return false;
}
}
使用方法:
[CheckSameUsername(ErrorMessage = "{0}用户已被注册,请重新填写")]
public string USERNAME { set; get; }
此种方法比较方便
首先在Controller中创建一个验证方法
public JsonResult CheckUnitName(string unitname)
{
List<UNIT_BASE> unit = db.UNIT_BASE.Where(c => c.NAME == unitname).ToList();
if (unit.Count == )
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; }
ASP.NET MVC3开发 - CodeFisrt数据库篇之M层验证之调用远程方法(Remote)验证的更多相关文章
- ASP.NET MVC3开发-数据库篇之CodeFisrt开发(一)
本文讲述了在ASP.NET MVC3开发中M层使用Code Fisrt如何进行开发,由于作者对ASP.NET MVC3的学习不是很深,所以写的都是些基本的内容(写的如有不正确的地方请评论指正),适合初 ...
- asp.net微信开发第四篇----已关注用户管理
公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成.一次拉取调用最多拉取10000个关注者的OpenID,可以通过 ...
- asp.net微信开发第七篇----高级群发(图文)
上一篇介绍了如何群发文本消息,本篇将介绍如何群发图文信息,上传图文信息所需的素材,界面如下: 我们先看从素材库中获取图文素材的代码,界面: 素材列表,我是使用的repeater控件, 前台代码如下: ...
- asp.net微信开发第五篇----用户分组管理
上一篇已讲解到新建用户分组,移动用户到分组的功能,这一章主要讲解修改分组名称和删除分组 开发者可以使用接口,对公众平台的分组进行查询.创建.修改.删除等操作,也可以使用接口在需要时移动用户到某个分组. ...
- asp.net微信开发第三篇----自定义会话管理
和微信用户的沟通少不了,总觉得看起来微信官网后台管理中的会话回复消息有点呆板,所以我这里就自定义了一个会话管理功能,最终效果图如下: 因为我试使用富文本文件CKEDITOR来进行编写,你看到稳中可能会 ...
- asp.net微信开发第八篇----永久素材管理
除了3天就会失效的临时素材外,开发者有时需要永久保存一些素材,届时就可以通过本接口新增永久素材. 最近更新,永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用 ...
- asp.net微信开发第六篇----高级群发(文本)
说到高级群发,微信的参考资料http://mp.weixin.qq.com/wiki/14/0c53fac3bdec3906aaa36987b91d64ea.html 首先我们先来讲解一下群发文本信息 ...
- [ASP.NET Core开发实战]基础篇03 中间件
什么是中间件 中间件是一种装配到应用管道,以处理请求和响应的组件.每个中间件: 选择是否将请求传递到管道中的下一个中间件. 可在管道中的下一个中间件前后执行. ASP.NET Core请求管道包含一系 ...
- [ASP.NET Core开发实战]基础篇02 依赖注入
ASP.NET Core的底层机制之一是依赖注入(DI)设计模式,因此要好好掌握依赖注入的用法. 什么是依赖注入 我们看一下下面的例子: public class MyDependency { pub ...
随机推荐
- 手工制作的年份Java老A发售量
Java老A这本书是写了很长的时间,昨天终于开始china-pub.京东.活动当天发售的猫,现在,简称买卖,他当然还没有到. 有兴趣的人能够去看看哈(兴许其它站点地址也会在这里公开): china-p ...
- 使用SAX解析XML文件
SAX这是Simple API for XML缩写,它不是由引起W3C拟议标准正式.尽管如此,使用SAX很少几个,点儿全部的XML解析器都会支持它. 与DOM比較而言,SAX是一种轻量型的方法. 我们 ...
- 编程算法 - 第一个仅仅出现一次的字符 代码(C)
第一个仅仅出现一次的字符 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 在字符串中找出第一个仅仅出现一次的字符. 字符是char类型, 所以匹 ...
- Roundabout for jQuery
效果图: Roundabout是一个转换静态HTML元素结构为交互式播放区域的jQuery插件(而且并不仅仅是一个转盘,还有许多的形状) 首先你要下载好Jquery.min.js,和Jquery-Ro ...
- CSS3实战开发: 纯CSS实现图片过滤分类显示特效
原文:CSS3实战开发: 纯CSS实现图片过滤分类显示特效 各位网友大家好,今天我要带领大家开发一个纯CSS的图片分类显示的网址导航,单纯看标题大家可能有些困惑,依照以往惯例,我先给大家演示一下实际运 ...
- ichartjs 使用BUG,assign_scale:true 解决
今天纯属灌水,好久没灌水的. 最近使用了flotr2 和 ichartjs进行canvas图标的开发,都不能满足需求. 没办法,先将就用用吧.然后,既然其他大神推荐使用ichartjs,为了统一,我也 ...
- 2.4 LINQ中使用where子句指定筛选条件
本篇讲解的内容有: 使用where筛选过滤LINQ查询 带逻辑的where筛选 多个where筛选子句 [1.使用where筛选过滤LINQ查询] 通常一个LINQ查询不会如前面的示例代码这么简单,经 ...
- 大批量烧写openwrt系统
http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd OEM mass flashing Flashing hundreds of devices using ...
- vs 文件头自动添加注释
原文:vs 文件头自动添加注释 vs2010 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates ...
- 使用Flexible实现手淘H5页面的终端适配(转)
曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜.可没想到到了移动时代,为了处理各终端的适配而乱了手脚.对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面做讨论—— ...