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 collectionIt is a type objectIt is Key-Value Dictionary collection
ViewData is a dictionary object and it is property of ControllerBase classViewBag is Dynamic property of ControllerBase class.TempData is a dictionary object and it is property of controllerBase class.
ViewData is Faster than ViewBagViewBag is slower than ViewDataNA
ViewData is introduced in MVC 1.0 and available in MVC 1.0 and aboveViewBag is introduced in MVC 3.0 and available in MVC 3.0 and aboveTempData is also introduced in MVC1.0 and available in MVC 1.0 and above.
ViewData also works with .net framework 3.5 and aboveViewBag only works with .net framework 4.0 and aboveTempData also works with .net framework 3.5 and above
Type Conversion code is required while enumeratingIn 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 ViewDataTempData is used to pass data between two consecutive requests.
It lies only during the current request.Same as ViewDataTempData 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”] ;  
}  

 

Footer Logo

Subscribe

Select Categories