2009-07-29 16 views
6

AGGIORNAMENTO: sembra che io abbia frainteso cosa è per TempData e cosa non lo è. Non dovrebbe essere usato in modo definitivo per "mantenere certi dati di tutta la sessione" come ho chiesto inizialmente (vedere ASP.NET MVC TempData Is Really RedirectData perché). Ho modificato la domanda di conseguenza.ASP.NET MVC CookieTempDataProvider: qualsiasi esperienza?

Qualcuno ha utilizzato CookieTempDataProvider per l'archiviazione TempData? Ci sono dei caveat a cui prestare attenzione (a parte il mantenimento della memoria di sessione piccola)? Qualche problema con l'utilizzo su Web farm?

risposta

5

Uso il CookieTempDataProvider per il nostro sito Web di produzione e sembra che funzioni davvero bene. Abbiamo una web farm con 2 server. Il sito è in diretta da circa 6 mesi e non abbiamo riscontrato problemi, sebbene il sito non abbia molto traffico. Io uso CookieTempDataProvider per archiviare i messaggi di stato che devono essere visualizzati al caricamento di una vista. Ad esempio:

  1. L'utente modifica un modulo e fa clic sul pulsante Salva. Questo è un post.
  2. Nel metodo di azione POST, salvi i dati, quindi spingo un messaggio di conferma in TempData. Quindi invio RedirectToAction a un'azione GET.
  3. Nel metodo di azione GET, recupero il messaggio dal TempData e lo inserisco nel ViewData. Quindi eseguo i miei altri dati e restituisco la vista.
  4. Nella vista, controllo se il modello ha un messaggio e, in tal caso, visualizzarlo.

cose da notare:

  1. Sto usando ASP.NET MVC 1.0.
  2. Sto utilizzando MVC Futures 1.0.
  3. Il CookieTempDataProvider non ha funzionato per me così com'è; Ho dovuto modificare il codice per farlo funzionare: vedi this post.