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 :

Surcharge d'actions dans un controller?


Sujet :

ASP.NET MVC

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Par défaut Surcharge d'actions dans un controller?
    Bonsoir à tous,

    J'aurais une question au sujet du MVC3. Au niveau de mon projet, j'ai dans une vue plusieurs formulaires(déjà est-ce la bonne approche d'avoir plusieurs @using (Html.BeginForm())) dans une meme vue?). Ces 3 formulaires sont chacun dans une div d'un accordion JQuery.

    Ils ont donc chacuns un bouton submit qui appelle la même action.

    Or ces 3 formulaires n'envoi pas les mêmes parametres en POST. Par exemple, le premier à un select et un champ pour mettre un nom, il renverra donc un ID et un String, le second renvoi deux string, et le troisieme seulement un ID.

    Pour gerer ça, j'aurais aimé faire 3 actions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    [HttpPost]
     public ActionResult CreerTeam(int IdTeam, string nom){}
     
    [HttpPost]
     public ActionResult CreerTeam(string ville,string prenom){}
     
    [HttpPost]
     public ActionResult CreerTeam(int IdTeamDelete){}
    [HttpPost]
     public ActionResult CreerTeam(int IdTeamDelete){}
    [HttpPost]
     public ActionResult CreerTeam(int IdnomDelete){}
    A la compilation, l'appli n'est pas contente et me renvoi une erreur du genre:
    The current request for action 'CreerTeam' on controller type 'AdministrerController' is ambiguous between the following action methods:
    System.Web.Mvc.ActionResult CreerTeam( Int32,System.String)
    System.Web.Mvc.ActionResult CreerTeam( System.String,System.String)
    System.Web.Mvc.ActionResult CreerTeam(Int32)
    Pour l'instant, j'ai mis tout les parametres dans mon action unique et j'ai des champs cachés qui font office de flag.
    Dans mon action, je test si tel flag existe, je fait ça, sinon si tel flag existe, je fais ça, etc. Le probleme, c'est que du coup, j'ai une action avec 5 parametres.

    Dans ma vue, pour chaque formulaire, je dois ajouter des champs cachés avec les attributs manquant afin de toujours renvoyer ces 5 attributs en POST a l'action sous peine de lapidation par le compilateur

    Voila,voila, s'il y avait une solution plus propre de procédé, je serais content de la connaitre,

    Bonne soirée

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Est-ce la bonne approche d'avoir plusieurs @using (Html.BeginForm())) dans une meme vue?
    => je n'en sais rien

    Par contre, sur le beginForm, il y a une surcharge permettant de définir l'action que tu vas poster.

    Enfin, si tu as plusieurs boutons sur un même formulaire, je n'ai pas de 'bonne' solution.

    Bonne chance

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Par défaut
    Salut,

    Merci d'avoir répondu, je n'avais pas pensé à regarder de ce coté là. Cela me semble plus propre de rediriger chaque "beginForm()" vers une action précise(ajout, modification,suppression). Merci de me lancer sur cette piste. Au passage, existe t'il une doc Razor? je n'ai quasiment trouvé aucune source sur le sujet. Il faut jouer avec l’auto-complétion de Razor mais ça ne permet pas d’évaluer les possibilités de ce "langage"...j'en arrive souvent à revenir au HTML pur, lassé de chercher les équivalents Razor..vraiment pas fan de ce moteur de rendu, mais ça vient peut-être du fait que j'ai fait pas mal d'HTML avant.

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

Discussions similaires

  1. Surcharge d'actions dans le controleur
    Par patxy dans le forum ASP.NET MVC
    Réponses: 6
    Dernier message: 14/03/2012, 12h13
  2. Obtenir l'action et le controller dans le layout
    Par Invité dans le forum Zend Framework
    Réponses: 2
    Dernier message: 13/04/2011, 21h45
  3. [JSP]meme action dans 2 jsp
    Par zach dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 24/02/2005, 08h34
  4. [C#] Déclencher action dans Repeater avec LinkButton
    Par globeriding dans le forum ASP.NET
    Réponses: 13
    Dernier message: 13/05/2004, 15h29

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