Validation 全局本地化验证
我正在使用System.ComponeneModel.DataAnnotations属性,如Required和StringLength。是否可以全局定位其错误消息 我知道我能做到Validation 全局本地化验证,validation,asp.net-mvc-3,localization,attributes,data-annotations,Validation,Asp.net Mvc 3,Localization,Attributes,Data Annotations,我正在使用System.ComponeneModel.DataAnnotations属性,如Required和StringLength。是否可以全局定位其错误消息 我知道我能做到 [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))] 但在我使用required属性的任何地方这样做都是疯狂的。此外,我希望避免以下情况: public cl
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
但在我使用required属性的任何地方这样做都是疯狂的。此外,我希望避免以下情况:
public class LocalizedRequiredAttribute : RequiredAttribute {
public LocalizedRequiredAttribute()
: base() {
ErrorMessageResourceName = "Required";
ErrorMessageResourceType = typeof(Resources.Validation);
}
}
(但如果没有其他方法,我就满足了)AFAIK您需要一个自定义属性或指定ErrorMessageResourceName和ErrorMessageResourceType属性。还有一种可能性: 在中创建全局资源类 App_GlobalResources,并设置 DefaultModelBinder.ResourceClassKey到 此类的名称(例如, 如果您创建了“Messages.resx”,则设置 ResourceClassKey到“消息”) 有两个字符串可以重写 在MVC2中:
- 的字符串值 在以下情况下使用“PropertyValueInvalid” 用户输入的数据不正确 与数据类型兼容(对于 例如,输入“abc”作为 整数字段)。默认消息 对于这是:“值“{0}”不是 对{1}有效。”
- 的字符串值 在以下情况下使用“PropertyValueRequired” 用户没有输入任何数据用于 不可为空的字段(对于 例如,一个整数字段)。这个 默认消息是:“一个值 是必需的。”
有关MVC3,请参见数据注释资源。它是“RequiredAttribute_ValidationError”等等。 您可以通过安装.NET Framework语言包来解决此问题
另请参见具有相同公认答案的类似问题是否可以在不使用资源文件的情况下替换这些消息?我需要截获生成这些消息的地方,并设置来自DB的本地化错误消息。谢谢