public static IDictionary<string, object> GetValidationAttributes( Property property, ControllerContext context) { // create own metadata based on Property object var metadata = new ModelMetadata( ModelMetadataProviders.Current, property.Entity.Type, null, property.TypeInfo.Type, property.Name); metadata.DisplayName = property.Display; var clientRules = ModelValidatorProviders.Providers .GetValidators(metadata, context) .SelectMany(v => v.GetClientValidationRules()); var provider = new PropertyModelValidatorProvider(); var modelValidators = provider .GetValidatorsForAttributes(metadata, context, property.Validators); clientRules = clientRules .Union(modelValidators.SelectMany(x => x.GetClientValidationRules())) .DistinctBy(x => x.ValidationType); var validationAttributes = new Dictionary<string, object>(); UnobtrusiveValidationAttributesGenerator .GetValidationAttributes(clientRules, validationAttributes); return validationAttributes; }
public static IDictionary <string, object> GetValidationAttributes( Property property, ControllerContext context) { // create own metadata based on Property object var metadata = new ModelMetadata( ModelMetadataProviders.Current, property.Entity.Type, null, property.TypeInfo.OriginalType, property.Name); metadata.DisplayName = property.Display; var clientRules = ModelValidatorProviders.Providers .GetValidators(metadata, context) .SelectMany(v => v.GetClientValidationRules()); var provider = new PropertyModelValidatorProvider(); var modelValidators = provider .GetValidatorsForAttributes(metadata, context, property.Validators); clientRules = clientRules .Union(modelValidators.SelectMany(x => x.GetClientValidationRules())) .DistinctBy(x => x.ValidationType); var validationAttributes = new Dictionary <string, object>(); UnobtrusiveValidationAttributesGenerator .GetValidationAttributes(clientRules, validationAttributes); return(validationAttributes); }