23

Where does TempData get stored in the ASP.NET MVC Framework (more specifically, ASP.NET MVC 2)? Is it stored at server-side, or is sent to the client?

amhed
  • 3,649
  • 2
  • 31
  • 56
Guillermo Gutiérrez
  • 17,273
  • 17
  • 89
  • 116

2 Answers2

21

By default TempData uses the ASP.NET Session as storage. So it is stored on the server (InProc is the default). But you could define other ASP.NET Session state modes: StateServer and SqlServer. You could also write a custom TempData provider and handle the storage yourself if you don't want to use the ASP.NET Session.

Darin Dimitrov
  • 1,023,142
  • 271
  • 3,287
  • 2,928
  • Thank you very much. I will investigate more about the ASP.NET session state modes, that's new for me. – Guillermo Gutiérrez Feb 21 '13 at 14:26
  • 1
    This seems not to be true anymore for ASP.NET Core. "The cookie-based TempData provider is enabled by default. To enable the session-based TempData provider... " https://learn.microsoft.com/en-us/aspnet/core/fundamentals/app-state?view=aspnetcore-6.0 – Benyom Dec 13 '21 at 15:35
14

It is stored in session storage, but there is one crucial difference between TempData and Session:

TempData is available only for a user’s session, so it persists only till we have read it and gets cleared at the end of an HTTP Request.

A scenario that fits the usage of TempData, is when data needs to persist between two requests – a redirect scenario. Another scenario I can think of is to return an error message after a POST operation fails.

Mathew Thompson
  • 55,877
  • 15
  • 127
  • 148
  • Thanks man, I wish I could select more than one answer as accepted. – Guillermo Gutiérrez Feb 21 '13 at 14:26
  • 1
    *TempData is available only for a user’s session, so it persists only till we have read it and gets cleared at the end of an HTTP Request.* Sessions last longer than HTTP requests. So is *TempData is available only for a user's session* correct? – ta.speot.is Nov 17 '13 at 23:34