该字段必须是数字.如何将此消息更改为其他语言?

Die*_*_DX 34 validation asp.net-mvc localization numbers data-annotations

如何更改所有int字段的消息,而不是说:

The field must be a number 用英文表示:

El campo tiene que ser numerico 在西班牙语中.

有办法吗?

Len*_*rri 62

如果您正好使用ASP.NET MVC 4,请查看此帖子:

在ASP.NET MVC和WebForms中本地化默认错误消息

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

 ClientDataTypeModelValidatorProvider.ResourceClassKey = "Messages";
 DefaultModelBinder.ResourceClassKey = "Messages";
Run Code Online (Sandbox Code Playgroud)

在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.
Run Code Online (Sandbox Code Playgroud)

你应该好好去.

请注意,您感兴趣的值是FieldMustBeNumeric.要将其本地化为西班牙语,您必须添加另一个名为的资源文件Messages.es.resx.在此特定.resx文件中,将资源值替换为:

Name                Value
====                =====
FieldMustBeNumeric  El campo {0} tiene que ser numerico.
Run Code Online (Sandbox Code Playgroud)

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

  • 经过长时间的搜索,这个答案帮助了我。我在 Javascript 验证和 *unobtrusive* 验证之间感到困惑,后者使用 `data-val-number` HTML5 属性。谢谢你。 (2认同)

M.A*_*zad 7

您可以设置自定义消息以进行验证.

 [RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
 public decimal UnitPrice { get; set; } 
Run Code Online (Sandbox Code Playgroud)