博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC学习八:MVC3的远程验证
阅读量:2387 次
发布时间:2019-05-10

本文共 1498 字,大约阅读时间需要 4 分钟。

参考文章:

有几天没有更新文章了,今天发表一篇 ASP.NET MVC 3 中远程验证(Remote Validation)的文章。Remote Validation 其实在 MVC 3 正式版发布前就已经有了,主要作用是实现客户端的异步验证,如用户注册时检测邮箱是否已被注册等。这样就如我们以前常用 Ajax 的方式检测一样,如果邮箱已被注册能很快的返回给用户相关信息,提高了用户体验。

往下看前,我们先看看下边两张图片,看过后相信你就会对本篇要实现的目标有所了解了,如下:

asp.net mvc3 远程验证                                         asp.net mvc3 远程验证

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)    
UserInfo
@Html.LabelFor(model => model.Email)
@Html.EditorFor(model => model.Email) @Html.ValidationMessageFor(model => model.Email)

}

这里我们不需要写任何代码了,到这里就已经完成了在 ASP.NET MVC3 中的远程验证,可见代码量和我们以前的方法相比大大的减少了。需要指出的是,这里的验证只是前台的验证,如果用户禁用了 javascript 后,验证就会失败,所有我们有必要在数据库表设计时添加唯一性约束。

转载地址:http://cljab.baihongyu.com/

你可能感兴趣的文章
Spring入门实例
查看>>
Spring的几种注入方式
查看>>
Spring自动装配
查看>>
Hibernate入门与实例
查看>>
Jython入门学习
查看>>
Hiberate基础用法实例
查看>>
Maven编译时指定JDK版本
查看>>
Hibernate单向关联N-1
查看>>
Hibernate单向关联1-1
查看>>
jQuery自定义动画
查看>>
Spring-data-redis在shiro中的实例
查看>>
GUN C中__attribute__作用
查看>>
3、系统调用之SYSCALL_DEFINE分析
查看>>
linux的signal_pending及signal
查看>>
OBJDUMP用法
查看>>
c/cplusplus通用makefile
查看>>
JavaScript-密码强度
查看>>
【SSH】1366-InCorrect string value:'\xE9\x99\x88\xE6\x96\xB0...'for column 'name' at row 1
查看>>
SpringCloud前身之微服务
查看>>
纵览全局——SSH
查看>>