2009-10-08 10 views
0

Je me demande quelle est la méthode préférée de validation des entrées utilisateur dans asp.net en utilisant un appel de méthode existant. Je l'ai mis en œuvre de deux façons maintenant et pendant qu'ils fonctionnent tous, j'ai l'impression qu'il pourrait y avoir une meilleure ou "optimale" méthode?Quelle est la méthode recommandée pour valider un contrôle ASP.net avec une méthode existante?

J'ai une zone de texte asp.net

<asp:TextBox ID="myTextBox" runat="server" /> 

J'ai aussi quelques méthodes qui existent pour moi sur le objec que la forme finira par remplir et enregistrer

public static bool IsNameValid() 
public bool IsValid() 

Je me demande comment les gens relieraient ces éléments à un contrôle de validation (je suppose que customValidator?). Je voudrais éviter de réécrire la validation en JavaScript (pour éviter la duplication de code).

Répondre

1

Utilisez un CustomValidator et définissez la propriété EnableClientScript sur false, en l'obligeant à aller sur le serveur pour validation. Ensuite, dans la méthode ServerValidate du validateur personnalisé, définissez la propriété args.IsValid sur le résultat de vos méthodes ci-dessus. L'avantage d'utiliser le validateur est que lorsque vous accédez à votre méthode de soumission pour le formulaire, vous pouvez envelopper la logique de traitement final autour d'un bloc If Page.IsValid(), ce qui garantira que tous les valideurs reviennent comme vrai avant le traitement.

+1

alors vous devez envelopper votre soumission cliquez dans une déclaration if alors? Y at-il une méthode de faire cela que vous n'avez pas à faire cela? – ChrisHDog

+1

Pas vraiment. Même si vous avez des valideurs sur la page, une soumission de page aura toujours lieu, qu'elle revienne ou non valide. Généralement, les validateurs se déclenchent d'eux-mêmes, en particulier si les scripts côté client sont générés, et définissent simplement leur état sur vrai ou faux selon qu'ils sont valides ou non. C'est à vous de décider de traiter ou non les données du validateur. –

+0

merci Dillie-O, c'est une bonne information - très utile – ChrisHDog

Questions connexes