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 :

[2.0][VB.NET]Comment fonctionne la méthode POST ?


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 44
    Par défaut [2.0][VB.NET]Comment fonctionne la méthode POST ?
    Bonjour,

    Je débute en ASP.NET.
    Je suis habituée aux autres languages : PHP, HTML, ASP...

    Lorsque je créée une page, automatiquement un formulaire est créé :
    <form id="monform" method="post" runat="server">

    Je voudrais tout simplement savoir comment fonctionne la méthode POST ?
    Peut-on récupérer les valeurs par un request.form("mavariable") ou doit-on utiliser autre chose ?

    Je sais que maintenant lorsque l'on crée un bouton <asp:button id="monbouton" value="Envoyer" runat="server"></asp:button>, la page est rechargée et qu'il faut utiliser un Response.Redirect("mapage.aspx") pour passer à une autre page. Est-ce que je peux récupérer les valeurs de mon formulaire dans cette nouvelle page ? Dois-je ajouter la propriété action ?

    Je suis complètement paumée.
    J'ai essayé de trouver des explications dans la FAQ et sur le forum mais je n'ai eu que des réponses à des problèmes mais pas d'explications.

    Quelqu'un peut-il m'expliquer comment tout cela fonctionne ?
    Merci.

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Lorsque le serveur reçoit une demande provenant d'un utilisateur, tu as l'objet Request à ta disposition pour avoir des informations le concernant mais aussi pour récupérer les paramètres via l'objet Params de cet objet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Request.Params["paramètreX"]
    Pour information, le tag runat="server" signifie que le contrôle sur lequel il est mis est géré par le serveur... Ce qui veut dire que via le code C#, tu pourras faire différente opérations comme (dés)activer, afficher/effacer, récupérer le texte (si textbox par exemple), ... et tout ça via l'id du contrôle.

    Donc tu as ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="MonTextBox" runat="server" />
    Et en ce#, tu peux...
    Changer le texte ou le récupérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonTextBox.Text = "Bonjour";
    Désactiver le contrôle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonTextBox.Enabled = false;
    Rendre invisible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonTextBox.Visible = false;
    Pour mon exemple, j'ai pris un contrôle pur html... Mais dans la pratique avec asp.net, on utilise les contrôles... Asp.NET.

    C'est à dire un TextBox pour un input text;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    un Button pour un input button;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <asp:Button ID="Button1"  runat="server" Text="Button" />
    etc...


    Une dernière chose pour répondre à ta dernière question... Lorsqu'un utilisateur appuie sur un boutton, celà provoque un retour serveur qui va exécuter une fonction qui correspond au clique sur le boutton en question... A ce moment là, toutes les informations de la page sont envoyées... C'est à dire les textes entrés dans textbox, les items sélectionnés dans les listbox, etc... Tu n'as plus qu'à utiliser l'id de tes contrôles dans ton code c# pour récupérer toutes les informations et agir en conséquence.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 44
    Par défaut
    Merci pour tes explications mais j'aimerai que tu me dises si ce cas est possible ?

    J'ai ma page qui s'appelle demande.aspx avec des contrôles ASP.NET :

    - une liste de contacts (DropDownList),
    - une date de demande (textBox),
    - un numéro de commande (textBox),
    - une liste de produits (DropDownList),
    - une liste d'exception (DropDownList)
    - une zone de remarques (textBox),
    - un bouton "Annuler" (button),
    - un bouton "Valider" (button).

    Lorsque je clique sur le bouton "Valider", je dois envoyer mon formulaire à la page confirmer.aspx.
    Je n'utilise pas la propriété POSTBACKURL mais un Response.Redirect("confirmer.aspx") car je dois effectuer plusieurs vérifications avant d'afficher la page.

    En faisant ceci, est-ce que les éléments de mon formulaire vont être accessible par Request.Params("moncontrole") (ex: request.Params("lstContacts"), request.Params("txtDate")...) dans la page confirmer.aspx ?

    Merci.

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Non, ça ne fonctionnera pas, par contre, tu peux placer tes informations dans l'url pour les récupérer de la même façon que ce que je t'ai expliqué (Request.Params["MonParametre"]).

    Pour construire ton url, tu dois t'en douter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("~/confirmer.aspx?param1=" +  Request.Params["MonParametre1"]);
    Par contre ceci n'est pas une très bonne technique car si l'utilisateur a entré des "&"... Il doit y avoir moyen de s'en sortir en échappant des caractères spéciaux mais je ne connais pas la technique.


    Pa contre, ce qui se fait plus fréquemment, c'est de traiter les informations directement dans la page mais dans ton cas, ça ne s'applique pas. Donc ce que je ferais plutôt c'est d'utiliser (comme en PHP) les Sessions.
    Une session est créée dès que l'utilisateur arrive sur le site web, tu n'as donc pas besoin de l'instancier. Il ne te reste plus qu'à mettre tes valeur dans la session comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Ecriture de différents Objets
    Session["monParam1"] = checkBox1.Checked;
    Session["monParam2"] = textbox1.Text;
    Session["monParam3"] = 5;
     
    //Lecture de différents Objets
    Boolean monParam1 = Convert.ToBoolean(Session["monParam1"]);
    String monParam2 = Session["monParam1"].ToString();
    int monParam3 = Convert.ToInt32(Session["monParam3"]);
    L'avantage de la session, c'est qu'il demande (en écriture) un objet de type object donc tu peux y mettre n'importe quel objet.
    Et en lecture, Session["..."] te renvoie évidemment un object, c'est donc à toi de faire le casting correcte.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 44
    Par défaut
    Donc c'est bien ce que je pensais.
    On ne peut plus récupérer les valeurs d'un formulaire comme dans une page HTML classique.

    Merci pour tes explications.

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

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. [VB.NET]Comment gérer plusieurs boutons en 1 méthode Click ?
    Par Cydreav dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/02/2006, 23h53
  3. Réponses: 4
    Dernier message: 02/07/2004, 10h31
  4. [vb.net] Comment vider un buffer ?
    Par mdc dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/12/2003, 15h43
  5. [VB.Net] Comment generer une page html dynamiquement ?
    Par Anonymous dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/03/2003, 10h22

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