TempData | Session |
TempData allow us to persisting data for the duration of single subsequent request. | Session is able to store data much more long time, until user session is not expire. |
ASP.net MVC will automatically expire the value of tempdata once consecutive request returned the result (it means, it alive only till the target view is fully loaded). | Session will be expire after the session time out occurred. |
It valid for only current and subsequent request only | It valid for all requests. |
TempData has Keep method to retention the value of TempData. Example TempData.Keep() TempData.Keep(“EmpName”) | NA |
TempData internally stored the value in to Session variable. | Session varible are stored in SessionStateItemCollection object (Which is exposed through the HttpContext.Session property of page). |
It is used to stored only one time messages like validation messages, error messages etc. | It is used to stored long life data like user id, role id etc. which required throughout user session. |
TempData and session, both required typecasting for getting data and check for null values to avoid run time exception. |