How can I change that messages for all int
fields so that instead of saying:
The field must be a number
in English, it shows:
El campo tiene que ser numerico
in Spanish.
Is there are a way?
How can I change that messages for all int
fields so that instead of saying:
The field must be a number
in English, it shows:
El campo tiene que ser numerico
in Spanish.
Is there are a way?
If you happen to be using ASP.NET MVC 4 onwards, check this post:
Localizing Default Error Messages in ASP.NET MVC and WebForms
Basically you have to add the following piece of code in your Application_Start()
method in Global.asax
:
ClientDataTypeModelValidatorProvider.ResourceClassKey = "Messages";
DefaultModelBinder.ResourceClassKey = "Messages";
Right click your ASP.NET MVC project in Solution Explorer inside Visual Studio and select Add => Add ASP.NET Folder => App_GlobalResources
.
Now add a .resx
file inside this folder called Messages.resx
.
Finally add the following string resources in that .resx
file:
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.
You should be good to go.
Note that the value you're interested in is the FieldMustBeNumeric
. To localize it to Spanish, you have to add another resource file named Messages.es.resx
. In this specific .resx
file replace the resource value with:
Name Value
==== =====
FieldMustBeNumeric El campo {0} tiene que ser numerico.
If you happen to be using ASP.NET MVC 3 downwards, this solution can help you achieve the same result: https://mcmap.net/q/263356/-providing-localized-error-messages-for-non-attributed-model-validation-in-asp-net-mvc-2
data-val-number
HTML5 attribute. Thank you. –
Algonkian .resx
files there. Then reference this library in your web project. That's it. For more info, check here: codeproject.com/Articles/778040/… –
Crofton PropertyValueRequired
, see this SO thread for explanation. –
Fluorocarbon you can set your custom message for your validation.
[RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
public decimal UnitPrice { get; set; }
For those using Razor Pages, this code may help (should be placed in Program.cs or Startup.cs)
builder.Services.AddRazorPages().AddMvcOptions(options =>
{
options.ModelBindingMessageProvider.SetValueMustBeANumberAccessor(
_ => "Укажите численное значение!");
});
If you want to specify custom message for each Integer , double and float . you can use Range Attribute with String as below.
[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; }
Now as above you can specify custom message for each and every propery .
© 2022 - 2024 — McMap. All rights reserved.