该字段必须是数字。 如何改变这种消息为另一种语言?(The field must be a nu

2019-06-27 07:43发布

我怎样才能改变这种状况的所有邮件int ,使与其说字段:

The field must be a number在英语中,它表明:

El campo tiene que ser numerico在西班牙语。

是否有办法?

Answer 1:

如果你碰巧使用ASP.NET MVC 4起,检查这篇文章:

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

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

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

右键单击Solution Explorer中的ASP.NET MVC项目在Visual Studio中,选择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



Answer 2:

您可以设置自定义消息为您的验证。

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


Answer 3:

如果要指定自定义消息对于每个整数,双和浮动。 您可以使用范围与字符串属性如下。

    [Required(ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "YearOfEstablishmentRequired")]
    [Range(0, int.MaxValue, ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "ValidYearOfEstablishment")]
    [Display(Name = "Year Of Establishment")]
    public string YearOfEstablishment { get; set; }

现在,作为上面可以为每个属性格式指定自定义消息。



文章来源: The field must be a number. How to change this message to another language?