Comment faire pour modifier le ErrorMessage pour int validation du modèle dans ASP.NET MVC?
J'ai un modèle avec une propriété définie comme ceci:
[Required(ErrorMessage="Please enter how many Stream Entries are displayed per page.")]
[Range(0,250, ErrorMessage="Please enter a number between 0 and 250.")]
[Column]
public int StreamEntriesPerPage { get; set; }
Cela fonctionne, à moins que l'utilisateur entre quelque chose comme "100q". Alors un peu moche d'erreur s'affiche qui dit que "La valeur" 100q " n'est pas valide pour StreamEntriesPerPage."
Est-il un attribut que je peux utiliser pour annuler le message d'erreur par défaut lorsque l'entrée n'est pas un int?
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez utiliser Annotations de données des extensions, la marque de votre propriété comme suit:
Essayez d'ajouter
Référence post de blog
Comme Feras suggestion, mais sans la dépendance externe:
Alors vous pouvez décorer avec un
[Integer(ErrorMessage="...")]
attribut.DatatTypeAtribute
?[Integer(ErrorMessage="Please enter a whole number.")]
. Quand je rentre '20d' j'obtiens toujours "La valeur "20d' n'est pas valide pour StreamEntriesPerPage."int
que le type de données dans mon modèle (d'une valeur devalue
est toujoursnull
). Mais si j'utilisestring
au lieu deint
, il fonctionne comme prévu, ce qui pourrait être mauvais?J'ai eu le même problème, cette solution résolu:
App_GlobalResources
dossier de votre projet (clic droit sur le projet -> Add -> Ajouter ASP.NET dossier -> App_GlobalResources).MyNewResource.resx
.PropertyValueInvalid
avec le message de votre choix de format (par exemple, "contenu {0} n'est pas valide pour le champ {1}"). Si vous souhaitez modifier PropertyValueRequired trop l'ajouter en tant que bien.DefaultModelBinder.ResourceClassKey = "MyNewResource"
à votre Global.asax code de démarrage.à partir de:
Comment faire pour modifier la valeur par défaut de validation de message d'erreur dans ASP.NET MVC?
Essayez ceci:
ErrorMessage ne fonctionne pas avec l'attribut pour moi. J'ai fini à l'aide d'un RegularExpression-attribut.
Au lieu de:
J'ai utilisé:
Vous pouvez trouver regexp des modèles pour les autres gammes, etc à: https://www.regular-expressions.info/numericranges.html