本文讲述在作者在使用.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; }
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 == )
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)验证的更多相关文章

  1. ASP.NET MVC3开发-数据库篇之CodeFisrt开发(一)

    本文讲述了在ASP.NET MVC3开发中M层使用Code Fisrt如何进行开发,由于作者对ASP.NET MVC3的学习不是很深,所以写的都是些基本的内容(写的如有不正确的地方请评论指正),适合初 ...

  2. asp.net微信开发第四篇----已关注用户管理

    公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成.一次拉取调用最多拉取10000个关注者的OpenID,可以通过 ...

  3. asp.net微信开发第七篇----高级群发(图文)

    上一篇介绍了如何群发文本消息,本篇将介绍如何群发图文信息,上传图文信息所需的素材,界面如下: 我们先看从素材库中获取图文素材的代码,界面: 素材列表,我是使用的repeater控件, 前台代码如下: ...

  4. asp.net微信开发第五篇----用户分组管理

    上一篇已讲解到新建用户分组,移动用户到分组的功能,这一章主要讲解修改分组名称和删除分组 开发者可以使用接口,对公众平台的分组进行查询.创建.修改.删除等操作,也可以使用接口在需要时移动用户到某个分组. ...

  5. asp.net微信开发第三篇----自定义会话管理

    和微信用户的沟通少不了,总觉得看起来微信官网后台管理中的会话回复消息有点呆板,所以我这里就自定义了一个会话管理功能,最终效果图如下: 因为我试使用富文本文件CKEDITOR来进行编写,你看到稳中可能会 ...

  6. asp.net微信开发第八篇----永久素材管理

    除了3天就会失效的临时素材外,开发者有时需要永久保存一些素材,届时就可以通过本接口新增永久素材. 最近更新,永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用 ...

  7. asp.net微信开发第六篇----高级群发(文本)

    说到高级群发,微信的参考资料http://mp.weixin.qq.com/wiki/14/0c53fac3bdec3906aaa36987b91d64ea.html 首先我们先来讲解一下群发文本信息 ...

  8. [ASP.NET Core开发实战]基础篇03 中间件

    什么是中间件 中间件是一种装配到应用管道,以处理请求和响应的组件.每个中间件: 选择是否将请求传递到管道中的下一个中间件. 可在管道中的下一个中间件前后执行. ASP.NET Core请求管道包含一系 ...

  9. [ASP.NET Core开发实战]基础篇02 依赖注入

    ASP.NET Core的底层机制之一是依赖注入(DI)设计模式,因此要好好掌握依赖注入的用法. 什么是依赖注入 我们看一下下面的例子: public class MyDependency { pub ...

随机推荐

  1. 【百度地图API】情人节求爱大作战——添加标注功能

    原文:[百度地图API]情人节求爱大作战--添加标注功能 任务描述: 2月2日是除夕,2月14立马来!即将到来的情人节,你想送TA一份什么礼物呢? 不如,在你们居住的地方,画个大大的桃心,表达你对TA ...

  2. 赵雅智_Android编码规范

    凝视 导入mycodetemplates.xml统一凝视样式 须要加凝视的地方 类凝视(必加) 方法凝视(必加) 块凝视主要是数据结构和算法的描写叙述(必加) 类成员变量和常量凝视(选择性加入) 单行 ...

  3. Spring该讲座

    看看今天Spring. 国内搞Java开发的朋友们.对Spring一定不会陌生. Spring的历史? 谈起Spring.就会想起Ejb2.0.虽然.现实中有非常多基于Ejb2.0的成功系统,可是Ej ...

  4. nodeJS起步 1

    nodeJS起步 -- (1) 先来简单介绍nodeJS 我们知道JavaScript是运行在浏览器中的,浏览器为它提供了一个上下文(context),从而让JavaScript得以解析执行. nod ...

  5. outlook自动备份

    在 这里 下载 http://support.microsoft.com/kb/238782

  6. sqlite学习笔记5:插入数据,查询数据和删除数据

    曾闻:全部的编程都是已数据为中心,觉得很有道理. 所谓数据库数据库,没有数据叫什么数据库,接下来就看看怎样在表中插入数据. 一 插入数据 1 创建一张表 首先为了插入数据,须要先创建一张表: CREA ...

  7. &lt;C++ 实现设计模式&gt; 观察者模式

    观察者模式,又称公布--订阅,mvc模式等. 通俗点讲,比方股票来说,非常多人关注一支股票,派一个人去观察股票的情况,一有变化(观察),就通知全部的预定这个消息的人. 而我们常见的mvc模式,v是指v ...

  8. C# 实现 Hyper-V 虚拟机 管理

    原文:C# 实现 Hyper-V 虚拟机 管理 Hyper-V WMI Provider 工具类如下: "; break; } return status; } } /// <summ ...

  9. Android学习笔记:Home Screen Widgets(1):大约Widget

    什么是Home Screen Widgets Home screen Widget即称为小工具或者中文小工具,是显示在主页上的views,通过后台进程更新view的数据. Android由AppWid ...

  10. 微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件

    原文:微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件 开篇介绍 大多数情况下我们的 SSIS 包都会配置在 SQL Agent ...