博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC学习八:MVC3的远程验证
阅读量:2385 次
发布时间: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/

你可能感兴趣的文章
cgroup使用--memory资源限制
查看>>
Redis 单机环境搭建
查看>>
elasticsearch 单机环境搭建
查看>>
spark 独立模式部署
查看>>
Redis 基础命令 --- String篇
查看>>
Redis 基础命令 --- Hash篇
查看>>
Redis 基础命令 --- List篇
查看>>
Redis 基础命令 --- Set篇
查看>>
Redis数据库篇 -- 生存时间
查看>>
面向对象设计基本原则
查看>>
Redis数据库篇 -- 事务
查看>>
hadoop 完全分布式环境搭建
查看>>
HDFS 回收站
查看>>
hadoop 完全分布式HA高可用集群(手工切换)搭建
查看>>
hadoop 完全分布式HA高可用集群(自动切换)搭建
查看>>
Hbase shell常见命令
查看>>
看看这同一句sql,scan index占用的资源大了很多!!
查看>>
couldn't set locale correctly报错解决
查看>>
回收基表的空间,造成物化视图只刷新了一部分数据
查看>>
ORA-12052,不能建立快速刷新物化视图的解决
查看>>