2010-08-13 18 views
6

Ist es möglich, dasselbe Formular an verschiedene Controller zu senden?MVC Formular an verschiedene Controller senden

Jede Seite könnte Post nur sein, um Action-URL zu bilden, aber vielleicht einige, wie ich sagen kann, zu welcher URL-Form gehen sollte?

z. B. habe ich ein Formular und zwei Submit-Buttons, eine Schaltfläche wird Formular an einen Controller/URL (zB/Aktion/Ansicht) Anthem Button Formular an einen anderen Controller/URL senden (zB/action/anothervew).

+0

Laut @ Darin's Kommentar, wenn eine Antwort Ihr Problem löst, könnten Sie bitte diese Antwort akzeptieren. danke –

Antwort

4

Sie können dies definitiv tun, verwenden Sie JQuery (oder nur Javascript), um eine Funktion an das Onclick-Ereignis der Schaltfläche (n) anzuhängen. Verwenden Sie dann diese Funktion, um die URL zu ändern, an die das Formular sendet, und senden Sie das Formular anschließend.

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

In diesem Fall funktioniert die Standardmodellbindung noch, und ich kann die Werte, die in das Formular eingegeben werden, in meinen Aktionsmethoden sammeln? – Biki

+0

Es sollte keinen Grund geben, warum dies in keiner der Aktionen, die Sie veröffentlichen, funktionieren würde. ModelBinding prüft nur die Formulardaten und versucht, übereinstimmende Eigenschaften in Ihrem Eingabemodell zu finden –

2

Sie müssen Javascript für diesen Einsatz:

JQuery wäre so etwas wie sein. Wenn die Schaltfläche angeklickt wird, muss JavaScript die Aktionseigenschaft des Formulars an den entsprechenden Controller ändern und das Formular absenden.

1

Wir haben dies vor der Verwendung von Javascript getan, wie in anderen Antworten erwähnt, und das ist wahrscheinlich der richtige Weg zu gehen. Eine Alternative besteht jedoch darin, auf eine einzige Controller-Methode zu schreiben, die Logik enthält, um zu entscheiden, wohin die Formulardaten gesendet werden sollen.

Effektiv senden Sie das Formular an den Controller und die Vorlage erneut, dass Daten basierend auf dem Text oder der ID der Schaltfläche mit einer if-Anweisung im Körper der Controller-Aktion angeklickt.

Verwandte Themen