MVC之参数验证(三)
在实际开发中,项目经理会一直强调一句话,永远不要相信客户端的数据(前端可以不用验证,但是后端必须验证)。大家同意这样的说法吧。。新端验证毋庸质疑JS验证,提高用户体验我们不得不添加一些与后端一致的验证逻辑,同样的验证方式写两次对一个高端的攻城师来说 比不让他写代码还难受,幸好MVC提供了一套验证框架,解决了这个比较高疼的问题...
1、内置前端验证
MVC无论是前端或后端验证,宗旨是不会变的,也就是Model,Model好比是通向两个河对岸的桥梁,前端验证也就是架在这个桥梁之上。其实实现前端验证很简单,只需要我们在Model(实体)对象上,添加我们要验证的属性就OK了。
eg:针对用户Name,Age,Sex进行验证,Model配置如下:
Razor视图配置如下:
验证结果如下:没有发出任何请求,客户端验证没有通过 2、IClientValidatable接口
IclientValidatablie接口是实现后端配置验证信息的提供者。用户信息登录性别条件为例,服务配置性别对象Sex只能为“男”“女”两种情况,那么我们如何告知前端,针对性别验证也只能是这两种咧??
3、自定义前端验证
随着系统逐渐的庞大,系统自定的验证方式已经无法满足我们业务的需要,这时MVC框架提供了一个非常可怕的验证方法 供我们实现自定义的一套验证体系,实现前后端一套验证搞定一切的类与接口(ValidationAttribute,IClientValidatable)关于ValidationAttribute的用法不会用的攻城师们回头看看[MVC之参数验证(一)]。服务端将自定义的验证规则通过IClientValidatable接口提交给客户端后,那么客户端如何抓取此规则,生产一套通知的验证体系呢??这时我们要借肋MVC前验证JS文件。引用Query文件(jquery-1.7.1.min.js)、Jquery验证文件(jquery.validate.js)、Jquery验证适配器(jquery.validate.unobtrusive.js) 然后添加验证事件与相应的适配器信息。
完成之后将我们添加的JS代码引用到所需的页面上,看看执行结果。
MVC之参数验证(三)的更多相关文章
- MVC之参数验证(二)
MVC内部针对这此验证是如何实现的咧???现在我们就来分析一下这此验证的背后故事.... 1.ModelValidator与ModelValidatorProvider 虽然Model绑定方式的因绑定 ...
- MVC之参数验证(一)
ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其数据的准确性.总地来说,我们可以采用Syste ...
- ASP.NET MVC Model验证(三)
ASP.NET MVC Model验证(三) 前言 上篇中说到在MVC框架中默认的Model验证是在哪里验证的,还讲到DefaultModelBinder类型的内部执行的示意图,让大家可以看到默认的M ...
- JSR-303 Bean Validation 介绍及 Spring MVC 服务端参数验证最佳实践
任何时候,当要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情. 应用程序必须通过某种手段来确保输入参数在上下文来说是正确的. 分层的应用很多时候同样的数据验证逻辑会出现在不同的层,这样 ...
- C# 中参数验证方式的演变
一般在写方法的时候,第一步就是进行参数验证,这也体现了编码者的细心和缜密,但是在很多时候这个过程很枯燥和乏味,比如在拿到一个API设计文档的时候,通常会规定类型参数是否允许为空,如果是字符可能有长度限 ...
- <转>ASP.NET学习笔记之MVC 3 数据验证 Model Validation 详解
MVC 3 数据验证 Model Validation 详解 再附加一些比较好的验证详解:(以下均为引用) 1.asp.net mvc3 的数据验证(一) - zhangkai2237 - 博客园 ...
- C# 中参数验证方式
C# 中参数验证方式 一般在写方法的时候,第一步就是进行参数验证,这也体现了编码者的细心和缜密,但是在很多时候这个过程很枯燥和乏味,比如在拿到一个API设计文档的时候,通常会规定类型参数是否允许为空, ...
- Asp.net mvc 知多少(三)
本系列主要翻译自<ASP.NET MVC Interview Questions and Answers >- By Shailendra Chauhan,想看英文原版的可访问http:/ ...
- JSR-303 Bean Validation 介绍及 Spring MVC 服务端验证最佳实践
任何时候,当要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情. 应用程序必须通过某种手段来确保输入参数在上下文来说是正确的. 分层的应用在很多时候,同样的数据验证逻辑会出现在不同的层, ...
随机推荐
- SHARP AR-2048D/2348D
http://www.sharp.cn/printer/AR-2048D%7C2348D/support/download.html
- ETL增量单表同步简述_根据timestamp增量
ETL增量单表同步简述 1. 实现需求 当原数据库的表有新增.更新.删除操作时,将改动数据同步到目标库对应的数据表. 2. 设计思路 设计总体流程图如下: 步骤简单说明: 1.设置job的执行属性,如 ...
- Android GIS开发系列-- 入门季(7) 利用GeometryEngine坐标转换、计算距离与面积等
GeometryEngine是Arcgis的重要工具类,利用此工具类,可以计算地图上的距离.面积,将点.线.面转化为Json数据,将Json转化为点线面,坐标转换作用非常强大. 一.坐标转化 将用到方 ...
- mysql导入大型sql文件时注意事项
原文:http://blog.csdn.net/k21325/article/details/70808563 大型sql文件,需要在my.ini(windows)或者my.cnf(Linux)中设置 ...
- 我的arcgis培训照片3
来自:http://www.cioiot.com/successview-557-1.html
- 使用maven时,如何修改JVM的配置参数;maven命令执行时到底消耗多少内存?
maven是使用java启动的,因此依赖JVM,那么如何修改JVM参数? MAVEN_OPTS 在系统的环境变量中,设置MAVEN_OPTS,用以存放JVM的参数,具体设置的步骤,参数示例如下: MA ...
- Binary safe
https://en.wikipedia.org/wiki/Binary-safe A binary-safe function is one that treats its input as a r ...
- input title 悬浮值
<!doctype html><html lang="en"> <head> <meta charset="UTF-8&quo ...
- sql 查询如何将结果集 输出为一段字符串?
文件id集合 文件表. SELECT CONCAT('2323',(SELECT 'dsfsd'),'232323'); SELECT CONCAT('2323',(SELECT file_ids F ...
- HTTP要点概述:六,HTTP报文
一,HTTP报文: 用于HTTP交互的信息称为HTTP报文.请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器)的叫做响应报文.HTTP报文本身是由多行(用CR+LF换行)数据构成的字符串文本 ...