message d'erreur de remplacement (la valeur 'xxx' n'est pas valide pour l'âge) lorsque le type de données saisi est incorrect pour le champ de saisie asp.net mvc
J'ai essayé de remplacer message d'erreur lors de l'entrée type de données incorrect dans le champ de saisie sur le formulaire HTML.
Par exemple, j'ai le modèle comme celui-ci.
public class Person
{
public string FirstName {get;set;}
public int Age {get;set;}
}
Pour la vue, j'ai mis de saisie de texte pour Âge pour obtenir la valeur.
Quand le type des chaînes à l'Âge de zone de texte comme "test" et appuyer sur le bouton soumettre.
J'ai eu ce message d'erreur
La valeur " xxx " n'est pas valide pour l'Âge
Cependant, je veux changer ce message et d'essayer de nombreuses façon. Il 's rien de l'effet de cette valeur de message.
S'il vous plaît pourriez vous m'aider à résoudre ce problème.
source d'informationauteur embarus
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser DataAnnotations pour remplacer la valeur par défaut des messages d'erreur dans MVC, ainsi que de fournir vos propres validation pour tout ce champs dont vous avez besoin. Voir la suite:
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
http://www.asp.net/mvc/tutorials/validation-with-the-data-annotation-validators-cs
Si vous utilisez EF, vous aurez besoin de créer les Métadonnées d'une classe large de l'EF classe générée, puis ajouter les annotations de données. La fin de la 2ème article traite de la façon d'écrire ces classes d'entity framework.
Dans votre cas particulier, vous voulez faire quelque chose comme:
Mise à JOUR je n'ai oublié une chose qui est facile à oublier, vous devez inclure les éléments suivants JS fichiers pour les annotations de données à être ramassé côté client sans avoir à faire un post:
MicrosoftAjax.js
MicrosfotMvcValidation.js
Ceux-ci devraient être en stock dans le dossier Scripts de votre projet (si vous êtes en utilisant MVC 2), et vous devez les inclure sur votre page ou dans la page principale,
vous aurez également besoin d'inclure
<% Html.EnableClientValidation(); %>
sur la page en question.
Le côté client de validation ne vous laissera pas soumettre le formulaire jusqu'à ce que tous les champs de répondre aux exigences de validation, comme Kaspars Ozols points, vous aurez toujours besoin d'appeler le Modèle.IsValid sur votre contrôleur.
Après avoir passé quelques heures en regardant autour, je ne vois pas vraiment a une réponse appropriée à cette question. J'ai trouvé une solution qui fonctionne pour moi, donc je pensais que je poste.
Le problème pour moi a été la validation d'un nullable int. En cas de non valeur valide a été entré par l'utilisateur, le message par défaut ", La valeur "dsfd" n'est pas valide pour le Problème".
La solution je suis venu avec était de supprimer les erreurs du modèle de l'état et d'ajouter mon propre.
Les classes pour effectuer la validation sont ci-dessous:
N'oubliez pas que vous aurez également besoin d'enregistrer la carte dans le mondial Application_Start()
Et décorer votre propriété avec le nouvel attribut
La réponse de wechel daté du 27 février, 12 travaillé pour moi, sauf que j'avais besoin de remplacer la ligne
avec
Je suppose que le changement est nécessaire, parce que je suis en utilisant MVC4 et l'extrait de code fourni a été écrit dans une version antérieure de la MVC?