本文共 1498 字,大约阅读时间需要 4 分钟。
参考文章:
有几天没有更新文章了,今天发表一篇 ASP.NET MVC 3 中远程验证(Remote Validation)的文章。Remote Validation 其实在 MVC 3 正式版发布前就已经有了,主要作用是实现客户端的异步验证,如用户注册时检测邮箱是否已被注册等。这样就如我们以前常用 Ajax 的方式检测一样,如果邮箱已被注册能很快的返回给用户相关信息,提高了用户体验。
往下看前,我们先看看下边两张图片,看过后相信你就会对本篇要实现的目标有所了解了,如下:
ASP.NET MVC3 的很多新特征我们之前已经介绍过了,对于 ASP.NET MVC3 Model 层验证大家可以参考下、。
首先:找到要添加验证的属性,在上边添加 Remote 属性:
[Remote("CheckEmail", "Register", ErrorMessage = "此邮箱已存在")]public global::System.String Email
其中的参数分别为:action 中的方法名、controller 名和提示信息。
其次:完成 action 方法:
public JsonResult CheckEmail(string email){ AndroidEntities android = new AndroidEntities(); var result = from e in android.UserInfo where e.Email == email select e; return Json(result.ToList().Count == 0, JsonRequestBehavior.AllowGet);}
上边方法 CheckEmail() 即为 Remote 中 action中的方法名,它接收 jQuery 传递过来的参数 email 后,在 UserInfo 表中查找是否有此 email ,如果没有返回一个值为 true 的 JSON 格式内容,ASP.NET MVC 3 中 JSON 数据的传递可以参考下 。这里需要注意的是参数 email 在这里是属性的名称,大小写是不敏感的,传递时我们需要注意下,要按我的习惯就会写成strEmail。
最后,看下 View 中的代码:
@using (Html.BeginForm()) { @Html.ValidationSummary(true)}
这里我们不需要写任何代码了,到这里就已经完成了在 ASP.NET MVC3 中的远程验证,可见代码量和我们以前的方法相比大大的减少了。需要指出的是,这里的验证只是前台的验证,如果用户禁用了 javascript 后,验证就会失败,所有我们有必要在数据库表设计时添加唯一性约束。
转载地址:http://cljab.baihongyu.com/