<p>I know what ViewData is and use it all the time, but in ASP.NET Preview 5 they introduced something new called TempData. </p>

<p>I normally strongly type my ViewData, instead of using the dictionary of objects approach.</p>

<p>So, when should I use TempData instead of ViewData?</p>

<p>Are there any best practices for this? </p>

In one sentence:
```
TempData
```
are like ViewData with one difference: They only contain data between two successive requests, after that they are destroyed. You can use
```
TempData
```
to pass error messages or something similar.
Although outdated,
this article
has good description of the
```
TempData
```
lifecycle.
As Ben Scheirman said
here
:
TempData is a session-backed temporary storage dictionary that is available for one single request.  It’s great to pass messages between controllers.