SilverLight数据输入验证一:System.ComponentModel.DataAnnotations概述

概述:

 System.ComponentModel.DataAnnotations 命名空间

提供用于为实体类定义元数据的特性类。

公共类:

说明
AssociationAttribute 指定某个实体成员表示某种数据关系,如外键关系。
ConcurrencyCheckAttribute 指定某属性将参与开放式并发检查。
CustomValidationAttribute 指定要执行的自定义方法以验证实体成员。
DataTypeAttribute 指定要与实体成员关联的附加类型的名称。
DisplayAttribute 为在用户界面中使用的实体类型和成员指定可本地化的字符串。
DisplayColumnAttribute 指定在将表用作外键关系中的父表时要显示的属性、用于排序的属性以及排序顺序。
DisplayFormatAttribute 指定如何显示数据字段以及如何设置数据字段的格式。
EditableAttribute 指定用户是否应能够更改实体属性的值。
EnumDataTypeAttribute 指定某个实体成员对应于某个枚举类型。
FilterUIHintAttribute 指定列的筛选行为。
KeyAttribute 指定一个或多个要用作实体的唯一标识的实体属性。
RangeAttribute 为关联成员指定最小值和最大值约束。
RegularExpressionAttribute 指定用于验证关联成员的正则表达式。
RequiredAttribute 指定必须为属性提供值。
StringLengthAttribute 指定一个实体成员允许的最大字符数和最小字符数。
TimestampAttribute 将某个成员指定为时间戳值。
UIHintAttribute 指定用于显示关联实体成员的控件和值。
ValidationAttribute 作为所有验证属性的基类。
ValidationContext 提供有关要验证的类型或成员的信息。
ValidationException 表示在验证使用某个验证属性标记的成员期间出现的异常。
ValidationResult 包含验证请求的结果。
Validator 提供成员以帮助使用关联 ValidationAttribute 属性的值验证对象和成员。

 

枚举:

 

枚举说明
DataType 表示与数据属性关联的数据类型。

 

SilverLight的Validation验证:

在应用中,当需要用户交互输入时,开发人员都会加入一些验证代码,这样可以有效的避免应用异常出现,也可以使应用的错误提示信息清晰明了的显示在客户端,有利于异常定位,同时也提高用户体验。特别是在商业应用项目中,使用Validation功能,可以在数据存入存储设备前,进行格式,以及内容的校验,这样也提高了数据存储的安全性。


 

SilverLight的Validation验证概述

Validation,是验证,校验的意思,通常发生在用户输入数据后,进行验证判断,以确认用户输入正确信息。在验证的方法中,我们可以简单的从两个验证类型理解Validation:

1. 语法验证:

该验证类型是通过成员的数据类型定义对比验证当前输入数据类型得出的验证结果;

例如,定义一个int类型,而赋值是string时,则会返回错误异常,验证控件,将获取该异常信息反馈到客户端;

 public int Zip {get;set}

语法验证经常发生在数据改变之前,其表现方式会在UI中体现;

2. 语义验证:

该验证类型是将当前输入数据根据特定数据限制代码进行验证;

例如:指定某TextBox为必须输入,或者限定某TextBox内容长度,或者使用正则表达式控制其输入内容,最典型的例子是对电子邮件地址的验证:

 

 

 

常见的验证效果:

 Ajax Validation:

而Silverlight同样提供类似于ASP.NET验证控件的支持,在Silverlight Toolkit开源项目中,包含Data Input的Validation演示,

简单数据绑定验证,

下图为ValidationSummary控件演示:

下图为一个简单的数据绑定,异常捕获验证时序图可以说明这一验证原理。 


作者:记忆逝去的青春
出处:http://www.cnblogs.com/lukun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过http://www.cnblogs.com/lukun/  联系我,非常感谢。

posted on 2011-04-25 13:53  记忆逝去的青春  阅读(13592)  评论(0编辑  收藏  举报