Ecco quello che sto cercando di fare:Passare un oggetto modello a RedirectToAction senza inquinare l'URL?
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(ContactModel model)
{
if (ModelState.IsValid)
{
// Send email using Model information.
return RedirectToAction("Gracias", model);
}
return View(model);
}
public ActionResult Gracias(ContactModel model)
{
return View(model);
}
Tutti e tre i metodi di azione sono nello stesso controller. Fondamentalmente, un utente digita alcuni dati nel modulo di contatto e voglio reindirli a una pagina di ringraziamento usando il loro nome nell'oggetto Modello.
Poiché il codice è, funziona, ma l'URL è passato insieme alle variabili GET. Non ideale
http://localhost:7807/Contacto/Gracias?Nombre=Sergio&Apellidos=Tapia&Correo=opiasdf&Telefono=oinqwef&Direccion=oinqef&Pais=oinqwef&Mensaje=oinqwef
Qualche suggerimento?
Non avevo idea che si potrebbe risparmiare tipi complessi al dizionario TempData. TIL. Grazie! – sergserg
Solo fino a quando sono serializzabili !! TempData è archiviato in sessione, che consente solo oggetti/classi serializzabili. –
I dati temporanei potrebbero certamente funzionare qui, ma perché non mostrare solo la vista "Gracias" direttamente da Index (dove il modello è già in ambito). Si salva anche un round trip del server che è essenzialmente un reindirizzamento inutile. –