System.ComponentModel.DataAnnotations 给我们提供了一些特性来直接对model的属性进行验证和约束, 同时也提供了 ErrorMessageResourceName 和 ErrorMessageResourceType来本地化一些错误信息。但并不是所以的错误信息都能本地化的。例如: 判断是否数字的信息一直是“the field {0} must be a number”.
这里对asp.net MVC 提供了一个简单的本地化的方法。
1 首先添加一个资源文件(假定命名: CH_ZNErrorResources.resx)到App_GlobalResources文件夹。(App_GlobalResources文件夹是项目自带的,一般情况不可见,你需要点击项目右键,添加asp。net folder--》App_GlobalResources来使其可见)。然后可以添加一条资源: Name: FieldMustBeNumeric, value: {0}必须是数字。保存。
2. 在Global.asax文件里的Application_Start下加入如下代码:
ClientDataTypeModelValidatorProvider.ResourceClassKey = "CH_ZNErrorResources";
DefaultModelBinder.ResourceClassKey = "CH_ZNErrorResources";
然后就没有然后了, 运行程序试试吧。
感谢Imran Baloch大师的分享,解决我的燃眉之急。原文地址:(asp.net 的可在原文中找)