Pubblica da un'azione del controller a un'altra (non reindirizzare)
-
05-07-2019 - |
Domanda
Ho un'azione che devo postare su un'altra azione se soddisfa determinate condizioni, ma non sono in grado di conservare i dati del modulo quando si passa all'azione successiva.
L'azione ricevente accetta un FormCollection, che l'azione di invio
Attualmente sto eseguendo un ritorno RedirectToAction (modulo "action", "controller", ")". E posso determinare che la variabile form ha le chiavi prima che reindirizzi (form.HasKeys () = true).
Quando l'azione viene comunque eseguita, FormCollection è vuoto (form.HasKeys () = false).
Qualche idea? Esiste un metodo "PostToAction" che mi manca?
Cordiali saluti: Sto usando ASP.NET MVC Beta. Mille grazie!
Modifica: per coloro che hanno questo problema, consultare Modello PRG . Questo è il termine effettivo di ciò che stavo cercando di fare, il che mi consente anche di creare URL.
Soluzione
Quando viene chiamato RedirectToAction, verrà effettuato un reindirizzamento HTTP e verrà rilevato l'URL dell'altra azione. Se hai bisogno di riutilizzare il codice da un altro controller, farei quello che suggeriscono le ewalshe, spostare il comune su un BaseController o un servizio aziendale e delegare entrambe le azioni.
Questo link può aiutare:
Altri suggerimenti
Riformulerei i due controller e inserivo il codice comune in un helper o in una classe base comune. In questo modo le azioni nei due controller possono delegare al codice comune.