• WCF RIA service 学习笔记三 数据验证


    在涉及到数据的增删改的时候通常会一些验证,防止用户的错误输入,和恶意用户的输入,在asp.net框架中,服务器端提供了一套完整的验证控件,但这些控件几乎是没有什么人用,没有人喜欢在服务器端做验证,现在jQuery插件蛮好用的,验证很方便,在SL中却不一样,jQuery用不上,但又不能不作验证,还好SL中 RIA service在中间层提供了很好的数据验证方案。验证方式有以下几种:

    DataTypeAttribute  类型验证


    RangeAttribute 范围验证

     
    RegularExpressionAttribute 表达式验证


    RequiredAttribute 必填验证


    StringLengthAttribute 长度验证

    当用户操作服务器端数据,并向服务器提交操作时,这些添加的验证规则将自动映射到所操作的类属性,并作出判断,如果通不过验证,向客户端发送,验证出错消息,本主题介绍添加默认验证和自定义验证信息。

    一,添加默认验证,添加默认验证非常简单,只需要作简单配置即可,直接在元数据上添加验证信息即可

    验证
     1             [Required(ErrorMessage = "必填")]
     2             [RegularExpression(DomainServiceHelper.regString, ErrorMessage = DomainServiceHelper.regStringErrMsg)]
     3             public string MsgContent { getset; }
     4             
     5             [Required]            
     6             public Guid ThreadId { getset; }
     7 
     8             [Display(Name="主题", GroupName="主题")]
     9             [StringLength(50)]
    10             [Required(ErrorMessage="必填")]
    11             [RegularExpression(DomainServiceHelper.regString, ErrorMessage = DomainServiceHelper.regStringErrMsg)]
    12             public string ThreadTitle { getset; }

    二,添加自定义验证,

     第一步,添加一个代码共享文件,以*.shared.cs ,该代码文件将包含验证对象,

    第二步,添加验证业务逻辑,注意:

    该方法必须为 publicstatic,它必须返回 ValidationResult,以便指示验证检查的结果。在您定义自定义的验证类时,除了自动实现的属性外,您还必须至少提供一些代码,以便在客户端项目中正确生成该类。

    下面的示例演示一个名为 RoleValidator的类,该类有一个验证 RoleValidator实体的方法 IsExistValid。当数据无效时, 将返回错误消息以及未通过验证的属性的名称。

    第三步,

    在要验证的实体或属性上,添加 CustomValidationAttribute 特性并且传递验证对象的类型以及执行验证的方法的名称。

    下面的示例演示应用于实体的 CustomValidationA

    自定义验证
    1     [CustomValidation(typeof(RoleValidator), "IsExistValid")]
    2     [MetadataTypeAttribute(typeof(aspnet_Roles.aspnet_RolesMetadata))]
    3     public partial class aspnet_Roles
    4     {
    5     ///
    6     }

    ttribute 特性。验证对象类型为 RoleValidator,方法为 IsExistValid

  • 相关阅读:
    跟光磊学Python开发-面向对象入门
    插件调用下推操作
    K3Wise老单获取单据行数
    git 添加和删除 global 的 remote.origin.url
    CSV转Excel格式
    java 下载文件
    windows下安装redis并设置自启动
    linxu jdk安装
    Linux安装部署Redis
    CentOS上安装MySQL(使用国内源)
  • 原文地址:https://www.cnblogs.com/langhua/p/2033233.html
Copyright © 2020-2023  润新知