博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC-Model数据注解(三)-Remote验证的一个注意事项
阅读量:6234 次
发布时间:2019-06-22

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

首先,一般来说对于一个属性的验证可能需要不止一个的远程验证,比如对于用户名来说,我们需要对于它的长度做一些限制,这个可以通过StringLength特性来解决;同时还需要验证用户名不能重复,这个就需要通过Remote特性来解决。

        现在需要再添加一个验证,那就是用户名不能包含违禁词。违禁词保存在数据库中。刚开始我觉得这个也简单,再加个Remote验证不就解决了么
        原来
不支持同一个属性有两个Remote验证
        这个时候该怎么办呢,尝试将两个验证写在同一个Remote中,但是这样的话只能显示一个ErrorMessage,被否决。(我以为Remote特性的方法只能返回一个bool值,不能返回ErrorMessage)。
        事实上,
Remote验证还可以自定义ErrorMessage,我才恍然大悟,我原来一直以为只能返回
true或false的。
        验证为false时不用返回bool值,可以直接返回ErrorMessage。方法如下:
public JsonResult CheckUserName(string userName)        {            if (IsUniqueName(userName) && IsForbiddenName(userName))            {                return Json(true, JsonRequestBehavior.AllowGet); } else if (!IsUniqueName(userName)) { return Json("用户名不唯一!", JsonRequestBehavior.AllowGet); } else { return Json("用户名不包含违禁词!", JsonRequestBehavior.AllowGet); } }

        这样就可以完美解决需要多个Remote验证的问题了。

同时远程验证多个属性 

比如我们想同时远程验证UserName和Email。 我们可以在View model的其中一个属性打上Remote,其它需要Remote验证的属性放在AdditionalFields中列举。

public string UserName { get; set; }

[Remote("CheckUserName", "Validate", AdditionalFields = "UserName", ErrorMessage = "远端验证失败")]    public string Email { get; set; } 

注意: AdditionalFields列举的字段是区分大小写的。

对应控制器远程验证方法:

 

//这里的参数userName,email必须和view model中的属性UserName, Email保持一致,不区分大小写        public JsonResult CheckUserName(string userName, string email) { bool isValidate = false; //假设让某个username不通过 if (userName != "demo" && email != "abc@qq.com" ) { isValidate = true; } //Remote验证是通过get方式请求的 return Json(isValidate, JsonRequestBehavior.AllowGet); }

转载来源:

转载于:https://www.cnblogs.com/spilledlight/articles/9269615.html

你可能感兴趣的文章
RHEL6下packagekit自动生成repo文件
查看>>
UITextView总结
查看>>
Axios 中文说明
查看>>
flexlib开源组件库
查看>>
mantis安装后,提交时超慢的原因和解决办法
查看>>
怎么样获取 家用路由器记录的密码
查看>>
我的友情链接
查看>>
Rythm 模板
查看>>
Linux系统启动过程分析
查看>>
BGP笔记5
查看>>
linux 常用脚本、命令
查看>>
编程:解放思想,开拓思维,想人之所不能想……
查看>>
GridView根据字段自适应宽度
查看>>
[转载] 高级人工智能——第10章 分布式人工智能
查看>>
gitlab 6.5 on centos 6.4
查看>>
Android系统自带样式(@android:style/)
查看>>
java 日志 log操作的基本配置+代码
查看>>
kvc机制与kvc的常用方法
查看>>
我的友情链接
查看>>
Java基础学习总结(21)——数组
查看>>