Stellen Sie von einer Controller-Aktion zu einem anderen (nicht umleiten)
-
05-07-2019 - |
Frage
Ich habe eine Aktion, die ich nach vorne auf einem anderen Aktion schreiben muß, wenn sie bestimmte Bedingungen erfüllt, aber ich bin nicht in der Lage, die Formulardaten zu erhalten, wenn bis zur nächsten Aktion übergeben.
Der Empfang Aktion nimmt eine Formcollection, die die Sendeaktion
Zur Zeit mache ich eine Rückkehr RedirectToAction ( "Aktion", "Controller", Form). Und ich kann feststellen, dass die Form variabler Schlüssel hat, bevor es Umleitungen (form.HasKeys () = true).
Wenn die Aktion trifft jedoch, ist die Formcollection leer (form.HasKeys () = false).
Irgendwelche Ideen? Gibt es eine ‚PostToAction‘ Methode, die ich fehle?
Zur Info: Ich bin mit ASP.NET MVC Beta. Vielen Dank!
Edit: Für diejenigen, die dieses Problem haben, schauen Sie bitte in die PRG Pattern . Dies ist der eigentliche Begriff von dem, was ich suchte auch zu tun, was ziemlich Urls ermöglicht.
Lösung
Wenn RedirectToAction genannt wird, wird es eine HTTP-Umleitung machen, und es wird eine GET auf die anderen Action-URL machen. Wenn Sie den Code von einer anderen Steuerung wieder zu verwenden brauchen würde ich das tun, was ewalshe vorschlagen, bewegen Sie die gemeinsam mit einem Basecontroller oder einem Business-Service und machen beide Aktionen auf sie übertragen.
Diese Links können helfen:
Andere Tipps
würde ich die beiden Controller Refactoring und den gemeinsamen Code in einen Helfer oder in eine gemeinsame Basisklasse setzen. So werden die Aktionen in den beiden Controllern auf den gemeinsamen Code delegieren kann.