top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

What is the difference between ViewData, ViewBag and TempData?

+4 votes
1,665 views
What is the difference between ViewData, ViewBag and TempData?
posted Feb 21, 2014 by Merry

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

+2 votes
 
Best answer

In ASP.NET MVC there are three ways ViewData, ViewBag and TempData to pass data from controller to view and in next request. Each of them has its own importance.

ViewData/ViewBag/TempData
ViewData
ViewData is a dictionary object that is derived from ViewDataDictionary class.
ViewData is used to pass data from controller to corresponding view.
It’s life lies only during the current request.
If redirection occurs then it’s value becomes null.
It’s required typecasting for complex data type and check for null values to avoid error.

ViewBag
ViewBag is a dynamic property that takes advantage of the new dynamic features in C# 4.0.
Basically it is a wrapper around the ViewData and also used to pass data from controller to corresponding view.
It’s life also lies only during the current request.
If redirection occurs then it’s value becomes null.
It doesn’t required typecasting for complex data type.

TempData
TempData is a dictionary object that is derived from TempDataDictionary class and stored in short lives session.
TempData is used to pass data from current request to subsequent request means incase of redirection.
It’s life is very short and lies only till the target view is fully loaded.
It’s required typecasting for complex data type and check for null values to avoid error.
It is used to store only one time messages like error messages, validation messages.

Source: http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBag-vs-TempData-vs-Session.html

answer Feb 21, 2014 by Salil Agrawal
...