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 MVC Discussion :

Rediriger le formulaire POST vers une méthode


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut Rediriger le formulaire POST vers une méthode
    Bonjour,

    je fais quelques tests pour comprendre la dynamique de ASP.NET MVC3 et j'ai un petit problème sur la redirection après remplissage d'un formulaire :

    j'ai mon code métier suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public class Personne
        {
            public string nom{get; set;}
            public string prenom{get; set;}
     
            public Personne(string nom, string prenom){
                this.nom = nom;
                this.prenom = prenom;
            }
     
            public string direBonjour(){
                return "bonjour " + this.nom + " " + this.prenom;
            }
        }
    Mon controller la : (avec deux méthodes : pour l'initialisation du formulaire (appel de view 1 et pour le lien view/métier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     public class FormulairePersonneController : Controller
        {
            //
            // GET: /FormulairePersonne/
     
            public ActionResult Index()
            {
                return View();
            }
     
            [HttpPost]
            public ActionResult AfficherNomPrenom(string nom, string prenom)
            {
                Personne p = new Personne(nom, prenom);
                ViewBag.message = p.direBonjour();
                return View();
            }
     
        }
    et enfin ma view1 : (mon formulaire) nommé index.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
     
    <!DOCTYPE html>
     
    <html>
    <head id="Head1" runat="server">
        <title>Formulaire de personne</title>
    </head>
    <body>
        <div>
            <form id="FormulairePersonne" method="post" runat="server">
                Votre nom :
                <ASP:TextBox id="nom" runat="server" /><br />
                Votre prenom :
                <ASP:TextBox id="prenom" runat="server" /><br />
            <ASP:Button id="Button" Text="Envoyer" runat="server" />
            </form>
        </div>
    </body>
    </html>
    et ma view 2 nommé AfficherNomPrenom.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
     
    <!DOCTYPE html>
     
    <html>
    <head runat="server">
        <title>AfficherNomPrenom</title>
    </head>
    <body>
        <div>
            <% = ViewBag.message %>
        </div>
    </body>
    </html>
    Le problème est (je pense) ce qu'il faut mettre dans le Merci par avance.
    @+

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Par défaut
    Salut !

    Concernant MVC, les réponses que je vais te donner concernent MVC2 mais doivent être valables pour MVC3.

    Tout d'abord, dans tes pages ASP, pour tout ce qui est formulaire, tu peux utiliser les helper MVC :
    Pour obtenir un input text pour l'un de tes champs, utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<ton-namespace.Personne>" %>
     
    <!DOCTYPE html>
     
    <html>
    <head id="Head1" runat="server">
        <title>Formulaire de personne</title>
    </head>
    <body>
        <div>
    <%= Html.BeginForm("tonaction", "toncontroller") %>
                Votre nom :
    <%= Html.TextBoxFor(m => m.nom) %>
    <br />
                Votre prenom :
    <%= Html.TextBoxFor(m => m.prenom) %>
    <br />
            <ASP:Button id="Button" Text="Envoyer" runat="server" />
            </form>
        </div>
    </body>
    </html>
    Le model doit etre passé en parametre de ta vue afin de directement binder tes helper dessus.

    Je te conseille de potasser le projet créé par défaut par visual studio afin de comprendre les mechanismes de MVC2, notamment le découpage de l'application ou encore les model avec annotations...

    A+

  3. #3
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut
    Salut,

    j'étais toujours dans les webforms ! Je vois que c'est bien différent !

    Merci :-)

    @+

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

Discussions similaires

  1. Formulaire méthode POST vers une page Wordpress
    Par Flodelarab dans le forum WordPress
    Réponses: 7
    Dernier message: 11/06/2015, 15h20
  2. Réponses: 9
    Dernier message: 12/04/2014, 10h01
  3. Réponses: 2
    Dernier message: 09/05/2006, 15h52
  4. Réponses: 13
    Dernier message: 16/04/2004, 12h00

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