首页 > 编程语言 >ASP.NET MVC2 数据模型验证类库:MVC Foolproof Validation

ASP.NET MVC2 数据模型验证类库:MVC Foolproof Validation

时间:2023-09-05 15:01:02浏览次数:40  
标签:类库 ASP string get 验证 set Required public 数据模型

MVC Foolproof Validation是一个数据模型类库扩展。 操作符验证 有效的操作符验证器 非空验证 条件非空验证 启用客户端验证要启用客户端验证,必须包含标准的客户端验证文件和Mvc...

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: }
2: {

有效的操作符验证器

 1: [Is]
   2: [EqualTo]
   3: [NotEqualTo]
   4: [GreaterThan]
   5: [LessThan]
   6: [GreaterThanOrEqualTo]
   7: [LessThanOrEqualTo]
2: [EqualTo]

非空验证

   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: }
2: {

条件非空验证

  1: [RequiredIf]
   2: [RequiredIfNot]
   3: [RequiredIfTrue]
   4: [RequiredIfFalse]
   5: [RequiredIfEmpty]
   6: [RequiredIfNotEmpty]
   7: [RequiredIfRegExMatch]
   8: [RequiredIfNotRegExMatch]
2: [RequiredIfNot]

启用客户端验证

要启用客户端验证,必须包含标准的客户端验证文件和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>
2: <script src="../../Scripts/MicrosoftMvcAjax.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: }
2: {
3:     //this is needed to register this attribute with foolproof's validator adapter

应用到模型之中:

   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: }
2: {

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,string,get,验证,set,Required,public,数据模型
From: https://blog.51cto.com/shanyou/7372879

相关文章

  • AspNetCore依赖注入在控制台的应用
    ①安装包:Microsoft.Extensions.DependencyInjection②应用主方法里面://接口IService,实现:Service,方法:Execute();varserviceProvider=newServiceCollection().AddSingleton<IService,Service>().BuildServiceProvider();var......
  • 第十四章 集合类库(上)
    14.1集合的概述14.1.1集合的由来当需要在Java程序中记录单个数据内容时,则声明一个变量。当需要在Java程序中记录多个类型相同的数据内容时,声明一个一维数组。当需要在Java程序中记录多个类型不同的数据内容时,则创建一个对象。当需要在Java程序中记录多个类型相同的对象数......
  • 第十五章 集合类库(下)
    15.1泛型机制15.1.1基本概念通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Object类型放入的,因此从集合中取出元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换,而强制类型转换可能会引发类型转换异常。为了避免上述错误的发生,从Java5开......
  • asp.net restful ef core sqlite 自定义包的位置
    MagicVilla_VillaAPI/MagicVilla_VillaAPI.csproj<ProjectSdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net7.0</TargetFramework><Nullable>enable</Nullable><ImplicitUsings>e......
  • ⏱️TimeHelper——一个简单快捷的PHP日期时间助手类库
    TimeHelper是一个简单易用的PHP时间日期助手类库,可以快速实现常用的时间日期操作,比如获取指定时间的秒数,获取友好的时间格式,判断时间范围,计算两个时间相差值,返回N小时/天/星期/月/年前或者后的时间戳等等......
  • MysqlHelper——一个便捷的MySQL导入导出的助手类库
    MysqlHelper是一个便捷的通过PHP导入和导出Mysql数据库表结构和数据的工具,可以快速实现mysql的数据库的导入和导出.......
  • asp.net post reponse location CreatedAtRoute
    [HttpPost][ProducesResponseType(StatusCodes.Status201Created)][ProducesResponseType(StatusCodes.Status400BadRequest)][ProducesResponseType(StatusCodes.Status500InternalServerError)]publicActionResult<VillaDTO>Cr......
  • 基于ASP的网上选课系统的设计与实现-计算机毕业设计源码+LW文档
    一、选题的目的和意义目的:网上选课系统的开发是为了更好的让各个高校充分的利用校园网的软硬件资源,通过B/S架构来实现网上选课系统,实现了网上选课系统的无纸化管理,让网上选课系统、查询课程更为方便,让导师审核选课更加快捷。意义:网上选课系统使学生足不出户就能够提交选课,有效的......
  • 基于ASP的人才招聘管理系统的设计与实现-计算机毕业设计源码+LW文档
    一、选题的目的和意义目的:基于ASP的人才招聘管理系统的开发是为了提高企业的工作效率,减少企业员工的工作量以及相应的时间,节省一些不必要的开支,从而让求职者可以更快的找到工作,企业快速的挖掘人才。人才招聘管理系统不仅能为经营者提供相对应的市场信息,并且能够随时掌握市场的发展......
  • C#类库推荐 拼多多.Net SDK,开源免费
    背景介绍近两年拼多多的发展非常迅速,即便口碑一般,也没有网页端,奈何我们已经全面小康,6亿月收入1000以下,9亿月收入2000以下,所以因为价格原因使用拼多多的用户也越来越多了。同样的,拼多多也开放了部分API接口,提供给开发者使用,开放平台也是一如既往的拼多多,没法跟淘宝、京东等相比,至今......