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相关推荐

  1. Asp.net MVC2.0系列文章-MVC简介篇

    使用微软VS工具开发Web应用程序主要有两种方式:一种是常用的创建Asp.net Web Forms,另外一种就是今天着重介绍的Asp.net  MVC. <?XML:NAMESPACE PRE ...

  2. 【飞秋】Asp.net MVC2 model验证 看似美好,实则让人失望。

    最近几天看了一下Asp.net MVC2的model验证,初始的感觉让我眼前一亮,于是去看了看它的源代码,Validation和Metadata部分应该是从Dynamic Data哪里得到的灵感,一切 ...

  3. 如何将ASP.NET MVC2项目升级到MVC 3 RC

    微软在10号发布了ASP.NET MVC3的发布候选版(RC:Release-candidate),该版本提供了Razor视图引擎的智能感知等功能,并同样具备Online许可.眼馋的同学是不是已经迫不 ...

  4. [zz]ASP.NET MVC2框架验证学习笔记

    ASP.NET中的框架验证方法1: 1.模型定义 public class User { [Required(ErrorMessage="用户名不能为空!!")]        [ ...

  5. [ASP.NET MVC2 系列] ASP.NET MVC 之如何创建自定义路由约束

     [ASP.NET MVC2 系列]      [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序>      ...

  6. mvc html validator,ASP.NET MVC实现Validation验证器扩展

    今天介绍在ASP.NET MVC实现Validation验证器扩展,通过使用Controller验证并不是最好的方法:验证过于分散,容易造成重复代码,不利于维护与扩展,因此本节将使用MVC默认绑定器( ...

  7. Asp.net MVC2.0系列文章-运行Web MVC2.0 Demo

    安装VS2010 首先安装VS2010,安装过程请参考文章: http://www.cnblogs.com/ywqu/archive/2010/01/27/1657450.html. 创建第一个MVC ...

  8. ASP.NET MVC2+MSSQL+Godaddy

    先感谢一下博客园,在网上浪了这么长时间,现在发现还是博客园的文章技术含量要高一点! 现在言归正传,最近在课外学习ASP.NET MVC,也在微软的官网上学了一些例子教程,现在刚好有机会可以实践一下,一 ...

  9. Oxite移植到ASP.NET MVC2 BETA 笔记(关于Html.RenderPartialFromSkin)

    在将Oxite移植到asp.net mvc2 beta平台后,经过一系列有关"方法调用"变更的修正后,终于能够通过编译运行起来了!(移植后的源码参见:http://ecubecms ...

  10. php 字段验证类库,PHP验证类库常用数据安全验证

    我们知道框架里面基本都会包含有最基本的安全验证,那么平时在做项目中,不一定都是用到的是某种框架,可能是某种自定义的方法,随着自己的业务编写出来的一种MVC模式框架,那么很多类库以及方法都是在业务中不断 ...

最新文章

  1. js返回上一页并刷新代码整理 转
  2. Win7局域网打印机共享设置(详细图文流程)
  3. Opencv——图像金字塔与图像尺寸缩放
  4. php扇形分布图,php生成扇形比例图的实例代码
  5. apm驱动与板级驱动
  6. Hybrid A*论文解析(1)
  7. antd vue form表单 子组件调用父组件的方法没反应_前几天推了Vue,今天给React疯狂打call...
  8. UWP DEP0700: 应用程序注册失败。[0x80073CF9] 另一个用户已安装此应用的未打包版本。当前用户无法将该版本替换为打包版本。...
  9. Vue常用特性~非常详细哦,带源码资料
  10. bzoj 2115: [Wc2011] Xor(DFS+线性基)
  11. nfine框架 上传文件_NFine快速开发框架
  12. 文库下载软件 冰点文库下载器 软件 百度网盘链接地址
  13. 让 macbook 外接键盘支持 HOME 键
  14. php 图片保存在手机里、浏览器保存
  15. mysql查询权限show grants_[MySQL]查看用户权限与GRANT用法
  16. bgl 词典_外语学习之词典推荐
  17. 【文献导读】XPBD: Position-Based Simulation of Compliant Constrained Dynamics
  18. java地铁最短距离_地铁线路最短路径问题
  19. 宁职-继续教育学院成功举办国家级高级研修班
  20. 破解XCode 3.2.5 免证书运行程序到 真机ipod(已破解)

热门文章

  1. Julia: arrow,一种革命性的数据格式
  2. 基于 Token 的身份验证
  3. Julia: 一行代码可以写出什么优雅?
  4. SRS为何加入木兰社区孵化?
  5. 一位腾讯离职创业 6 年 CEO 的忠告:不要等公司倒闭,才思考这 3 个问题
  6. 春节面对亲友盘问:有对象了吗?月薪5万码农这样回答
  7. 【优化算法】粒子群优化模拟器【含Matlab源码 1553期】
  8. idea新建一个java项目_创建第一个Java项目(Create First Java Project)
  9. HBuilderX的各版本软件自取
  10. php完成润年判定程序编写,python闰年判定代码是什么