Comment puis-je changer ces messages pour tous les champs int
afin qu'au lieu de dire:
The field must be a number
en anglais, cela montre:
El campo tiene que ser numerico
en espagnol.
Y a-t-il un moyen?
S'il vous arrive d'utiliser ASP.NET MVC 4, consultez cet article:
Localisation des messages d'erreur par défaut dans ASP.NET MVC et WebForms
Fondamentalement, vous devez ajouter le morceau de code suivant dans votre méthode Application_Start()
dans Global.asax
:
ClientDataTypeModelValidatorProvider.ResourceClassKey = "Messages";
DefaultModelBinder.ResourceClassKey = "Messages";
Cliquez avec le bouton droit sur votre projet ASP.NET MVC dans l'Explorateur de solutions dans Visual Studio et sélectionnez Add => Add ASP.NET Folder => App_GlobalResources
.
Ajoutez maintenant un .resx
fichier dans ce dossier appelé Messages.resx
.
Enfin, ajoutez les ressources de chaîne suivantes dans ce .resx
fichier:
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.
Vous devriez être prêt à partir.
Notez que la valeur qui vous intéresse est le FieldMustBeNumeric
. Pour le localiser en espagnol , vous devez ajouter un autre fichier de ressources nommé Messages.es.resx
. Dans ce .resx
file remplace la valeur de la ressource par:
Name Value
==== =====
FieldMustBeNumeric El campo {0} tiene que ser numerico.
Si vous utilisez ASP.NET MVC 3 vers le bas, cette solution peut vous aider à obtenir le même résultat: https://stackoverflow.com/a/2551481/114029
vous pouvez définir votre message personnalisé pour votre validation.
[RegularExpression("\d{9}",ErrorMessage="El campo tiene que ser numerico")]
public decimal UnitPrice { get; set; }
Si vous souhaitez spécifier un message personnalisé pour chaque entier, double et float. vous pouvez utiliser l'attribut de plage avec chaîne comme ci-dessous.
[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; }
Maintenant, comme ci-dessus, vous pouvez spécifier un message personnalisé pour chaque propriété.