ASP.NET MVC3的验证(Validation)框架

在ASP.NET MVC3的验证框架比MVC2要改进不少,下面做下简单的介绍:

Server端验证

自定义Server端的validation属性,需要继承自ValidationAttribute,主要方法就是重载IsValid方法。

IsValid的方法有两个;
IsValid(Object value)
IsValid(Object value, ValidationContext validationContext)

第一个是比较常用的方法,即取到当前field的值;第二个比较特殊,它还传送了这个field的上下文,通过这个上下文,可以取到这个class中的其他field,例如:
PropertyInfo property = validationContext.ObjectType.GetProperty(“fieldName”);
非常的好用,非常的强大(在MVC2中,只有把属性加在model class上才可以实现password和confirm  password之间的比较,如今直接把属性加在cofirm password上就可以实现了^_^)。

Client验证

Client验证主要是个这个field添加验证规则的名称和传递一系列的参数,然后将这个属性添加到前台的html元素中,结合javascript来进行客户端的验证。
要自定义Client端的验证规则,需继承IClientValidatable接口。
实现方法:
public IEnumerable<ModelClientValidationRule> GetClientValidationRules( ModelMetadata metadata, ControllerContext context)
这个方法的返回值是可枚举的 ModelClientValidationRule ;换言之,这是个获取客户端验证规则的接口,自定义验证规则,需要从 ModelClientValidationRule 继承派生类。
ModelClientValidationRule 有3个重要的property:
  • ErrorMessage : String
  • ValidationParameters : IDictionary<String, Object>
  • ValidationType : String

ErrorMessage不用说了,就是错误消息;
ValidationParameters,是一个hash表,key就是参数的名称,value中存参数的值;
ValidationType,这个东西是和前台的javascript相对应的,.NET MVC3默认用的是jQuery.validation,所以ValidationType的值还需要和其中的验证方法相对应,在自定义验证规则后,还需要在前台添加对应的javascript,将自定义的验证的方法加入了jQuery.validation插件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值