Ошибка сообщения RegularExpression при использовании Griffin.MvcContrib
Я использую Griffin.MvcContrib для проверки ошибок сообщений метаданных.
Я добавил пользовательскую проверку для добавления проверки регулярного выражения:
protected override IEnumerable<ModelValidator> GetValidators(ModelMetadata metadata, ControllerContext context, IEnumerable<Attribute> attributes) {
List<ModelValidator> vals = base.GetValidators(metadata, context, attributes).ToList();
//if (metadata.ModelType.Name == "DateTime")
if (metadata.DataTypeName == "telephone") {
DataAnnotationsModelValidationFactory factory;
RegularExpressionAttribute regex = new RegularExpressionAttribute(@"^(((\+?34([ |\-])?)|(\+?\(34\)([ |\-])?))?[9|6|7]((\d{1}([ |\-])?[0-9]{3})|(\d{2}([ |\-])?[0-9]{2}))([ |\-])?[0-9]{2}([ |\-])?[0-9]{2})$");
//regex.ErrorMessage = "Invalid date format";
if (!AttributeFactories.TryGetValue(regex.GetType(), out factory))
factory = DefaultAttributeFactory;
vals.Add(factory(metadata, context, regex));
}
return vals.AsEnumerable();
}
В глобальном assax:
ModelMetadataProviders.Current = new LocalizedModelMetadataProvider(myResouceFile);
ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new LocalizedModelValidatorProvider());
ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new MovilityMetadataValidatorProvider());
И в ресурсах у меня есть следующие ключи
CommonPrompts_RegularExpression {0} fu
Phone_RegularExpression {0} fa
RegularExpression Incorrect Format
Но он продолжает показывать мне это сообщение:
El campo [es-ES: Phone] Дебе совпадает с регулярным выражением '^(((+?34([ |-])?)|(+?(34)([ |-])?))?[9|6|7]((\d{1}([ |-])?[0-9]{3})|(\d{2}([ |-])?[0-9]{2}))([ |-])?[0-9]{2}([ |-])?[0-9]{2})$'.
Я также добавил сообщения:
AgentDto_Phone_RegularExpression {0} regular
AgentCreateEditViewModel_AgentDto_Phone_RegularExpression {0} regular
без удачи.
Что я должен добавить в Ресурсы, чтобы изменить сообщение?