asp.net mvc 验证

 

通过ModelMetadataProviders.Current.GetMetadataForType(null, dataType)方法来获取类型的ModelMetaData,通过ModelValidatorProvider的GetValidators(metadata,ControllerContext)可以获得所有的IEnumerable<ModelValidator>,最终在客户端遍历IEnumerable<ModelValidator>中的ModelValidator,使用其validator.Validate(container)来获取ModelValidationResult,

<span class="field-validation-error" data-valmsg-replace="true" data-valmsg-for="Name">Contact.Name</span>

 

DataAnnotationsModelValidator通过其提供者DataAnnotationsModelValidatorProvider创建的。后者继承自AssociationValidatorProvider,AssociationValidatorProvider可以根据ModelMetadata来提取所有的特性。由于所有的特性都继承DataAnnotationsModelValidator<TAttribute>:DataAnnotationsModelValidator

从而可以得到所用的DataAnnotationsModelValidator。

posted @ 2014-06-28 14:31  haiziguo  阅读(190)  评论(0编辑  收藏  举报