ASP.NET MVC2 数据模型验证类库:MVC Foolproof Validation
MVC Foolproof Validation是一个数据模型类库扩展。
操作符验证
1: public class SignUpViewModel
2: {
3: [Required]
4: public string Password { get; set; }
5:
6: [EqualTo("Password", ErrorMessage="Passwords do not match.")]
7: public string RetypePassword { get; set; }
8: }
9: public class EventViewModel
10: {
11: [Required]
12: public string Name { get; set; }
13:
14: [Required]
15: public DateTime Start { get; set; }
16:
17: [Required]
18: [GreaterThan("Start")]
19: public DateTime End { get; set; }
20: }
有效的操作符验证器
1: [Is]
2: [EqualTo]
3: [NotEqualTo]
4: [GreaterThan]
5: [LessThan]
6: [GreaterThanOrEqualTo]
7: [LessThanOrEqualTo]
非空验证
1: private class Person
2: {
3: [Required]
4: public string FirstName { get; set; }
5:
6: [Required]
7: public string LastName { get; set; }
8:
9: public bool Married { get; set; }
10:
11: [RequiredIfTrue("Married")]
12: public string MaidenName { get; set; }
13: }
条件非空验证
1: [RequiredIf]
2: [RequiredIfNot]
3: [RequiredIfTrue]
4: [RequiredIfFalse]
5: [RequiredIfEmpty]
6: [RequiredIfNotEmpty]
7: [RequiredIfRegExMatch]
8: [RequiredIfNotRegExMatch]
启用客户端验证
要启用客户端验证,必须包含标准的客户端验证文件和MvcFoolproofValidation.js文件:
1: <script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
2: <script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
3: <script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
4: <script src="../../Scripts/MvcFoolproofValidation.js" type="text/javascript"></script>
jQuery验证
如果使用jQuery验证,则必须包含标准的客户端验证文件和MvcFoolproofJQueryValidation.js文件:
1: <script src="../../Scripts/jquery.js" type="text/javascript"></script>
2: <script src="../../Scripts/jquery-validate.js" type="text/javascript"></script>
3: <script src="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>
4: <script src="../../Scripts/MvcFoolproofJQueryValidation.js" type="text/javascript"></script>
复杂自定义验证
自定义验证属性:
1: public class RoleValidInDepartmentAttribute : ModelAwareValidationAttribute
2: {
3: //this is needed to register this attribute with foolproof's validator adapter
4: static RoleValidInDepartmentAttribute() { Register.Attribute(typeof(RoleValidInDepartmentAttribute)); }
5:
6: public override bool IsValid(object value, object container)
7: {
8: if (value != null && value.ToString() == "Software Developers")
9: {
10: //if the role was software developers, we need to make sure the user is in the IT department
11: var model = (CreateUserViewModel)container;
12: return model.Department == "IT Department";
13: }
14:
15: //the user wasn't in a constrained role, so just return true
16: return true;
17: }
18: }
应用到模型之中:
1: public class CreateUserViewModel
2: {
3: [Required]
4: public string Username { get; set; }
5:
6: [Required]
7: public string Department { get; set; }
8:
9: [Required]
10: [RoleValidInDepartment(ErrorMessage="This role isn't valid for the selected department.")]
11: public string Role { get; set; }
12: }
Foolproof Provides Contingent Data Annotation Validation for ASP.NET MVC 2
Build Model-Aware Custom Validation Attributes in ASP.NET MVC 2
Client Side Model-Aware Validation
官方地址:http://foolproof.codeplex.com
ASP.NET MVC2 数据模型验证类库:MVC Foolproof Validation相关推荐
- Asp.net MVC2.0系列文章-MVC简介篇
使用微软VS工具开发Web应用程序主要有两种方式:一种是常用的创建Asp.net Web Forms,另外一种就是今天着重介绍的Asp.net MVC. <?XML:NAMESPACE PRE ...
- 【飞秋】Asp.net MVC2 model验证 看似美好,实则让人失望。
最近几天看了一下Asp.net MVC2的model验证,初始的感觉让我眼前一亮,于是去看了看它的源代码,Validation和Metadata部分应该是从Dynamic Data哪里得到的灵感,一切 ...
- 如何将ASP.NET MVC2项目升级到MVC 3 RC
微软在10号发布了ASP.NET MVC3的发布候选版(RC:Release-candidate),该版本提供了Razor视图引擎的智能感知等功能,并同样具备Online许可.眼馋的同学是不是已经迫不 ...
- [zz]ASP.NET MVC2框架验证学习笔记
ASP.NET中的框架验证方法1: 1.模型定义 public class User { [Required(ErrorMessage="用户名不能为空!!")] [ ...
- [ASP.NET MVC2 系列] ASP.NET MVC 之如何创建自定义路由约束
[ASP.NET MVC2 系列] [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序> ...
- mvc html validator,ASP.NET MVC实现Validation验证器扩展
今天介绍在ASP.NET MVC实现Validation验证器扩展,通过使用Controller验证并不是最好的方法:验证过于分散,容易造成重复代码,不利于维护与扩展,因此本节将使用MVC默认绑定器( ...
- Asp.net MVC2.0系列文章-运行Web MVC2.0 Demo
安装VS2010 首先安装VS2010,安装过程请参考文章: http://www.cnblogs.com/ywqu/archive/2010/01/27/1657450.html. 创建第一个MVC ...
- ASP.NET MVC2+MSSQL+Godaddy
先感谢一下博客园,在网上浪了这么长时间,现在发现还是博客园的文章技术含量要高一点! 现在言归正传,最近在课外学习ASP.NET MVC,也在微软的官网上学了一些例子教程,现在刚好有机会可以实践一下,一 ...
- Oxite移植到ASP.NET MVC2 BETA 笔记(关于Html.RenderPartialFromSkin)
在将Oxite移植到asp.net mvc2 beta平台后,经过一系列有关"方法调用"变更的修正后,终于能够通过编译运行起来了!(移植后的源码参见:http://ecubecms ...
- php 字段验证类库,PHP验证类库常用数据安全验证
我们知道框架里面基本都会包含有最基本的安全验证,那么平时在做项目中,不一定都是用到的是某种框架,可能是某种自定义的方法,随着自己的业务编写出来的一种MVC模式框架,那么很多类库以及方法都是在业务中不断 ...
最新文章
- js返回上一页并刷新代码整理 转
- Win7局域网打印机共享设置(详细图文流程)
- Opencv——图像金字塔与图像尺寸缩放
- php扇形分布图,php生成扇形比例图的实例代码
- apm驱动与板级驱动
- Hybrid A*论文解析(1)
- antd vue form表单 子组件调用父组件的方法没反应_前几天推了Vue,今天给React疯狂打call...
- UWP DEP0700: 应用程序注册失败。[0x80073CF9] 另一个用户已安装此应用的未打包版本。当前用户无法将该版本替换为打包版本。...
- Vue常用特性~非常详细哦,带源码资料
- bzoj 2115: [Wc2011] Xor(DFS+线性基)
- nfine框架 上传文件_NFine快速开发框架
- 文库下载软件 冰点文库下载器 软件 百度网盘链接地址
- 让 macbook 外接键盘支持 HOME 键
- php 图片保存在手机里、浏览器保存
- mysql查询权限show grants_[MySQL]查看用户权限与GRANT用法
- bgl 词典_外语学习之词典推荐
- 【文献导读】XPBD: Position-Based Simulation of Compliant Constrained Dynamics
- java地铁最短距离_地铁线路最短路径问题
- 宁职-继续教育学院成功举办国家级高级研修班
- 破解XCode 3.2.5 免证书运行程序到 真机ipod(已破解)
热门文章
- Julia: arrow,一种革命性的数据格式
- 基于 Token 的身份验证
- Julia: 一行代码可以写出什么优雅?
- SRS为何加入木兰社区孵化?
- 一位腾讯离职创业 6 年 CEO 的忠告:不要等公司倒闭,才思考这 3 个问题
- 春节面对亲友盘问:有对象了吗?月薪5万码农这样回答
- 【优化算法】粒子群优化模拟器【含Matlab源码 1553期】
- idea新建一个java项目_创建第一个Java项目(Create First Java Project)
- HBuilderX的各版本软件自取
- php完成润年判定程序编写,python闰年判定代码是什么