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:
A la compilation, l'appli n'est pas contente et me renvoi une erreur du genre:
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){}
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.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)
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
Partager