Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

TempData: trasferire dati fra controller

Conservare i dati nel passaggio tra le action, passando per la sessione
Conservare i dati nel passaggio tra le action, passando per la sessione
Link copiato negli appunti

Nel caso in cui un'azione non restituisca come risultato una vista ma un redirect ad un'altra azione sorge il problema di come trasferire dati tra le due azioni, dato che questa operazione comporta una nuova richiesta al server da parte del client che viene reindirizzato.

ASP.NET MVC mette a disposizione dello sviluppatore una proprietà dedicata, TempData. Questa è dichiarata come un dizionario (cioè un insieme di coppie chiave-valore) i cui valori vengono però temporaneamente memorizzati in variabili di sessione.

Queste variabili hanno tuttavia una vita breve in quanto vengono distrutte automaticamente alla richiesta successiva.

public ActionResult Index()
{
  // Aggiungo una stringa all'interno di TempData
  TempData["Errore"] = "Attenzione! Si è verificato un errore.";
  
  // Reindirizzo l'utente all'azione Error
  return RedirectToAction("Error");
}

public ActionResult Error()
{
  // Estraggo la stringa da TempData...
  string errore = TempData["Errore"] as string; 
  
  // ...e uso l'errore in qualche modo
  return View(errore);
}

L'azione Index del listato precedente inserisce nel TempData un messaggio di errore, che viene successivamente utilizzato dall'azione Error a cui l'utente viene reindirizzato. Come vedremo, è possibile accedere alla collection TempData anche dalle viste, caratteristica che rende questa funzionalità particolarmente interessante.

Ti consigliamo anche