asp.net mvc 本地化 默认的错误提示

时间:2023-04-29 17:20:26

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 的可在原文中找)

http://weblogs.asp.net/imranbaloch/archive/2013/03/31/localizing-default-error-messages-in-asp-net-mvc-and-web-form.aspx