asp.net-mvc - 该字段必须是数字。如何将此消息更改为另一种语言?

标签 asp.net-mvc validation localization numbers data-annotations

如何更改所有消息 int字段,而不是说:
The field must be a number在英语中,它显示:
El campo tiene que ser numerico在西类牙语中。

有办法吗?

最佳答案

如果您碰巧从 ASP.NET MVC 4 开始使用,请查看这篇文章:

Localizing Default Error Messages in ASP.NET MVC and WebForms

基本上,您必须在 Application_Start() 中添加以下代码段Global.asax 中的方法:

 ClientDataTypeModelValidatorProvider.ResourceClassKey = "Messages";
 DefaultModelBinder.ResourceClassKey = "Messages";

在 Visual Studio 中的解决方案资源管理器中右键单击您的 ASP.NET MVC 项目,然后选择 Add => Add ASP.NET Folder => App_GlobalResources .

现在添加 .resx此文件夹中名为 Messages.resx 的文件.

最后在该 .resx 中添加以下字符串资源文件:
Name                   Value
====                   =====
FieldMustBeDate        The field {0} must be a date.
FieldMustBeNumeric     The field {0} must be a number.
PropertyValueInvalid   The value '{0}' is not valid for {1}.
PropertyValueRequired  A value is required.

你应该很高兴去。

请注意,您感兴趣的值是 FieldMustBeNumeric .要将其本地化为西类牙语,您必须添加另一个名为 Messages.es.resx 的资源文件。 .在这个具体.resx文件将资源值替换为:
Name                Value
====                =====
FieldMustBeNumeric  El campo {0} tiene que ser numerico.

如果您碰巧在向下使用 ASP.NET MVC 3,此解决方案可以帮助您实现相同的结果:https://stackoverflow.com/a/2551481/114029

关于asp.net-mvc - 该字段必须是数字。如何将此消息更改为另一种语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099466/

相关文章:

asp.net-mvc - mvc 5 的复选框不可见

c# - 在我的模型中,我将哪种元素类型用于类型为 smalldatetime 的 SQL 表列?

javascript - 在 ASP.NET MVC 中为 GridView 创建动态工具提示

ios - 本地化以及如何在 iOS 应用程序上处理网络内容

c# - 本地化与定制

javascript - 重新加载时使用 C# 更改 HTML 页面

javascript - 如何处理两个javascript事件?

ruby-on-rails - 在 Rails 中验证跨两个表的唯一性时如何避免竞争条件

model-view-controller - 使用接口(interface)排除模型绑定(bind)的属性

r - 以英语获取 R 警告和错误