在App_GlobalResources目录中使用resx文件,我可以更改模型验证器的PropertyValueInvalid字符串的默认消息.
但是,当需要值时,不需要翻译消息(PropertyValuerequired.)
在Global.asax.cs Application_Start()中我已经更改了资源类密钥,如下所示:
DefaultModelBinder.ResourceClassKey = "Messages";
在Messages.resx文件中,我已经输入了两个条目:
>“PropertyValueInvalid”=> “O勇气”{0}“éinválidopara o campo {1}”.
>“PropertyValuerequired”=> “é必须的数字o {0}”.
谢谢.
解决方法
requiredAttribute未使用DefaultModelBinder.GetValuerequiredResource.
创建自定义DataAnnotationsModelValidator类.
创建自定义DataAnnotationsModelValidator类.
public class MyrequiredAttributeAdapter : requiredAttributeAdapter { public MyrequiredAttributeAdapter(ModelMetadata Metadata,ControllerContext context,requiredAttribute attribute) : base(Metadata,context,attribute) { attribute.ErrorMessageResourceType = typeof (Messages); attribute.ErrorMessageResourceName = "PropertyValuerequired"; } }
并在Global.asax中注册适配器.
DataAnnotationsModelValidatorProvider.RegisterAdapter( typeof(requiredAttribute),typeof(MyrequiredAttributeAdapter));
希望这个帮助!
Reusable Validation Error Message Resource Strings for DataAnnotations