IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[ASP.NET MVC] Création des règles de validation


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut [ASP.NET MVC] Création des règles de validation
    Bonsoir!

    Je penche sur un système de validation des entrées utilisateurs. Est-ce que quelqu'un aurait une idée d'un système efficace de validation des entrées utilisateurs?

    Petite note qui a peut être sont importance: j'utilise comme wrapper de bdd Entity Framework.

    Merci d'avance et bonne soirée

    L.

  2. #2
    Membre confirmé Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Points : 527
    Points
    527
    Par défaut
    Euh que veux-tu contrôlé exactement ? Du genre tu demande à l'utilisateur d'entré un nombre et tu veux contrôlé que c'est bien un nombre ou c'est plutôt un contrôle pour vérifié si la donnée saisie existe déjà en base ?
    Je fais ce que je dis et je dis ce que je veux .

  3. #3
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    En faite, plusieurs cas de figure:

    - Contrôler que les valeurs ne sont déjà pas en base.
    - Contrôler que l'utilisateur a bien entré les valeurs obligatoires
    - Contrôler qu'il rentre bien les valeurs souhaitée (ex: une date dans un champ demandant la date, du texte dans un champ demandant du texte, etc)

    Je ne sais pas vraiment comment m'y prendre pour avoir une solution qui soit simple à étendre si par la suite je dois rajouter des contrôles.

  4. #4
    Membre confirmé Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Points : 527
    Points
    527
    Par défaut
    Alors pour "Contrôler que l'utilisateur a bien entré les valeurs obligatoires"
    Il faut utiliser les ValidationGroup.

    Exemple : (L'ajax c'est pour que ca fasse jolie )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:TextBox ID="TB_Part" runat="server" AutoPostBack="true" CssClass="TB_G" OnTextChanged="Part_Change"></asp:TextBox>
    <asp:RequiredFieldValidator ID="Val_CS" runat="server" ErrorMessage="Le champ est vide !" ControlToValidate="TB_Part" ValidationGroup="VG1" Display="None" />
    <ajax:ValidatorCalloutExtender ID="ValExt_CS" runat="server" TargetControlID="Val_CS" HighlightCssClass="CBError" WarningIconImageUrl="~/Icones/pencil.png" />
     
    <asp:ImageButton ID="BT_Vld" runat="server" ImageUrl="~/Icones/add.png" CssClass="BT_Centre" ValidationGroup="VG1" OnClick="AJOUT_CLICK" AlternateText="Ajouter"/>
    Ensuite pour "Contrôler qu'il rentre bien les valeurs souhaitée"

    Soit tu utilise les mask (toujours de l'ajax) ^^: <ajax:MaskedEditExtender ......

    Exemple pour une date de naissance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <asp:TextBox ID="TB_Naiss" runat="server" CssClass="TB"></asp:TextBox>
                                                    <ajax:MaskedEditExtender ID="MaskedEditExtender6" runat="server" TargetControlID="TB_Naiss"
                                                        Mask="99/99/9999" MessageValidatorTip="true" OnInvalidCssClass="validatorCalloutHighlight"
                                                        MaskType="None" InputDirection="RightToLeft" AcceptNegative="None" DisplayMoney="None"
                                                        ErrorTooltipEnabled="True" CultureName="fr-FR" CultureThousandsPlaceholder="."
                                                        ClearMaskOnLostFocus="false" />
    Sinon tu peux le faire en même temps que quand tu fait : "Contrôler que les valeurs ne sont déjà pas en base"
    En utilisant les CustomValidator :

    Exemple :
    Code ascx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <asp:CustomValidator runat="server" ID="CVal_login"  
                                               ControlToValidate="TB_Login"
                                               Display="None"
                                               OnServerValidate="ServerValidationLogin" />
                                        <ajax:ValidatorCalloutExtender runat="Server" ID="CalloutLoginValidate"
                                                            TargetControlID="CVal_login"
                                                            HighlightCssClass="validatorCalloutHighlight" />
    Code Behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void ServerValidationLogin(object sender, ServerValidateEventArgs e)
            {
                if(........)
     
                    e.IsValid = false;
     
                else
                    e.IsValid = true;
     
            }
    Voilà

    NB : Désolé pour la mise en page du code, sous VS c'est nettement mieux
    Je fais ce que je dis et je dis ce que je veux .

  5. #5
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Et ça marche bien avec ASP.NET MVC?

    Par contre, j'ai vu que tu utilise souvent de l'AJAX, et je suis un peu réticent à l'utilisation d'AJAX pour des contrôles côté client. Je ne sais pas trop comment les contrôles AJAX fonctionnent, mais si c'est le même principe que de faire sont code en javascript et que la validation se passent côté client, alors suis vraiment pas fan (surtout pour des raisons de sécurités) :p

  6. #6
    Membre confirmé Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Points : 527
    Points
    527
    Par défaut
    Tu peux te passer de l'ajax, les controls ajax que j'ai je les utilise uniquement pour afficher les messages d'erreurs après c'est purement graphique tout le code que j'ai mis est fonctionnel sans les controls ajax.

    Si tu regarde ce ne sont que des extender donc pas forcement nécessaire.
    Je fais ce que je dis et je dis ce que je veux .

  7. #7
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Ok. Je vais jetter un oeil plus tard sur ça.

    En ce moment j'ai 2-3 autres petits soucis, mais je te tiens au courant sur se topic

    Merci encore

  8. #8
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    tu as regarde du cote de xVal ?

    http://xval.codeplex.com/

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  9. #9
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    à non pas du tout... je garde ça sur le coude. En ce moment je suis plutôt sur l'interface. Une fois que ça sera fini, je mettrais en place les règles de validations, puis après la gestion des accès.

    Si j'ai le temps, je rendrais le tout joli avec du AJAX

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] validation de formulaire coté client en utilisant asp.net mvc 2
    Par Michou2000 dans le forum C#
    Réponses: 1
    Dernier message: 29/03/2012, 12h08
  2. Création d'un package avec VS2008 pour ASP.net MVC
    Par trihanhcie dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 15/06/2011, 17h42
  3. Réponses: 18
    Dernier message: 11/03/2010, 11h27
  4. [ASP.NET MVC] Inherits des Views
    Par Leelith dans le forum ASP.NET
    Réponses: 3
    Dernier message: 06/10/2009, 02h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo