2010-08-13 6 views
6

Est-il possible de poster le même formulaire à différents contrôleurs?MVC soumettre le formulaire à différents contrôleurs

Chaque page peut être postée seulement pour former l'action url, mais peut-être un peu comment je peux dire au bouton à quelle forme d'URL devrait aller? Par exemple, j'ai un formulaire et deux boutons de soumission, un bouton affichera un formulaire pour un contrôleur/url (par exemple/action/vue) un autre bouton soumettre un formulaire à un autre contrôleur/url (par exemple/action/othervew).

+0

Selon le commentaire de @ Darin, si une réponse résout votre problème, veuillez accepter cette réponse. merci –

Répondre

4

Vous pouvez certainement le faire, utilisez JQuery (ou juste javascript) pour attacher une fonction à l'événement onclick du bouton (s). Utilisez ensuite cette fonction pour modifier l'URL vers laquelle le formulaire est posté, puis envoyez le formulaire.

JQuery serait quelque chose comme:

$('#button1').onclick(function(){ $(this).action = url1; $(document).submit();}); 
$('#button2').onclick(function(){ $(this).action = url2; $(document).submit();}); 
+0

Dans ce cas, la liaison Modèle par défaut fonctionne-t-elle toujours et je peux collecter les valeurs entrées dans le formulaire, dans mes méthodes d'action? – Biki

+0

Il ne devrait pas y avoir de raison pour que cela ne fonctionne pas dans les actions que vous publiez. ModelBinding examine simplement les données de formulaire et essaie de trouver les propriétés correspondantes sur votre modèle d'entrée –

2

Vous devez utiliser javascript pour cela. Lorsque le bouton est cliqué, le javascript modifie la propriété d'action du formulaire au contrôleur approprié, puis soumet le formulaire.

1

Nous l'avons fait avant d'utiliser javascript, comme mentionné dans d'autres réponses, et c'est probablement la bonne façon de procéder. Une alternative, cependant, consiste à envoyer à une seule méthode de contrôleur qui contient la logique pour décider où envoyer les données de formulaire.

En effet, vous soumettez le formulaire au contrôleur et vous soumettez à nouveau ces données en fonction du texte ou de l'ID du bouton cliqué à l'aide d'une instruction if dans le corps de l'action du contrôleur.

Questions connexes