如何更改所有int
字段的消息,而不是说:
The field must be a number
在英语中,它显示:
El campo tiene que ser numerico
在西班牙语中。
有没有办法?
如何更改所有int
字段的消息,而不是说:
The field must be a number
在英语中,它显示:
El campo tiene que ser numerico
在西班牙语中。
有没有办法?
如果您碰巧使用的是 ASP.NET MVC 4 以后的版本,请查看这篇文章:
在 ASP.NET MVC 和 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
您可以设置自定义消息以进行验证。
[RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
public decimal UnitPrice { get; set; }
如果要为每个 Integer 、 double 和 float 指定自定义消息。您可以将范围属性与字符串一起使用,如下所示。
[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; }
现在如上所述,您可以为每个属性指定自定义消息。