Quando dovrei usare uno rispetto all'altro? Voglio mettere in cache un certo oggetto all'avvio e riutilizzare l'applicazione. Qual è la soluzione migliore (ViewData o Session)?Qual è la differenza tra Session e ViewData in Asp.net-MVC?
6
A
risposta
12
ViewData
è un oggetto per richiesta utilizzato per inviare informazioni dal controller alla vista.
Ogni chiamata di azione ottiene il proprio ViewData; ViewData non dura oltre la vista.
Session State è un contenitore di stoccaggio per il singolo utente, che consente di memorizzare i dati per una sessione utente specifico (identificato da un cookie)
Se si desidera condividere un oggetto globale, probabilmente si dovrebbe farne un Singleton (in una proprietà static
) o metterlo nello stato dell'applicazione.
Effettuare sicuro che è thread-safe. (Oppure utilizzare attentamente un campo [ThreadStatic]
)