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?
Yes, Tempdata is private to a user.
ViewDataDictionary class inherits from IDictionary<string, object> interface and ViewData returns ViewDataDictionary class object, that means ViewData is a collection of Dictionary objects with string, object types. ViewData's data can be accessed in the current page instance.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With