What Is The Difference between Viewbag Viewdata and Tempdata?

Introductions

ViewBag, ViewData, and TempData all are objects in ASP.NET MVC and these are used to pass the data in various scenarios.

ViewData
ViewBag
TempData
It is Key-Value Dictionary collection It is a type object It is Key-Value Dictionary collection
ViewData is a dictionary object and it is property of ControllerBase class ViewBag is Dynamic property of ControllerBase class. TempData is a dictionary object and it is property of controllerBase class.
ViewData is Faster than ViewBag ViewBag is slower than ViewData NA
ViewData is introduced in MVC 1.0 and available in MVC 1.0 and above ViewBag is introduced in MVC 3.0 and available in MVC 3.0 and above TempData is also introduced in MVC1.0 and available in MVC 1.0 and above.
ViewData also works with .net framework 3.5 and above ViewBag only works with .net framework 4.0 and above TempData also works with .net framework 3.5 and above
Type Conversion code is required while enumerating In depth, ViewBag is used dynamic, so there is no need to type conversion while enumerating. Type Conversion code is required while enumerating
Its value becomes null if redirection has occurred. Same as ViewData TempData is used to pass data between two consecutive requests.
It lies only during the current request. Same as ViewData TempData only works during the current and subsequent request

ViewBag

1.ViewBag is a dynamic object to pass the data from Controller to View
2.it is restricted to the current request and the value of ViewData will become null while redirecting
3.ViewBag is slower than ViewData

eg.

Public ActionResult Index()
{
ViewBag.Title = “Welcome”;
return View();
}

ViewData

1.ViewData is a dictionary object to pass the data from Controller to View where data is passed in the form of key-value pair.
2. The scope of ViewData is similar to ViewBag and it is restricted to the current request and the value of ViewData will become null while redirecting
3.ViewData is Faster than ViewBag

eg.

Public ActionResult Index()  
{  
    ViewData[”Title”] = “Welcome”;  
    return View();  
}

 

TempData

1.TempData is a dictionary object to pass the data from one action to other action in the same Controller or different Controllers.
2.TempData will not null while redirecting.

eg.

Public ActionResult Index()  
{  
    TempData[”Data”] = “I am from Index action”;  
    return View();  
}  

Public string Get()  
{  
    return TempData[”Data”] ;  
}  

 

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe

Select Categories