Introduction
ViewData and ViewBag are used for the same purpose to transfer data from controller to view. Both life lies only in current request. ViewData is nothing but dictionary of object and it is accessible by string as key. ViewData is property of controller that exposes an instance of the ViewDataDictionary class. ViewBag is very similar to ViewData. ViewBag is a dynamic property (dynamic keyword which is introduced in .net framework 4.0). ViewBag is able to set and get value dynamically and able to add any number of additional fields without converts it to strongly typed. ViewBag is just a wrapper around the ViewData.
ViewData Example
ViewData and ViewBag are used for the same purpose to transfer data from controller to view. Both life lies only in current request. ViewData is nothing but dictionary of object and it is accessible by string as key. ViewData is property of controller that exposes an instance of the ViewDataDictionary class. ViewBag is very similar to ViewData. ViewBag is a dynamic property (dynamic keyword which is introduced in .net framework 4.0). ViewBag is able to set and get value dynamically and able to add any number of additional fields without converts it to strongly typed. ViewBag is just a wrapper around the ViewData.
ViewData Example
//Controller Code
public ActionResult Index()
{
List<string> Student = new List<string>();
Student.Add("Vineet");
Student.Add("Buddhi");
Student.Add("Rakesh");
ViewData["Student"] = Student;
return View();
}
//page code
<ul>
@foreach (var
student in ViewData["Student"]
as List<string>)
{
@student
}
</ul>
ViewBag Example
ViewBag Example
//Controller Code
public ActionResult Index()
{
List<string> Student = new List<string>();
Student.Add("Vineet");
Student.Add("Buddhi");
Student.Add("Rakesh");
ViewBag.Student = Student;
return View();
}
//page code
<ul>
@foreach (var
student in ViewData["Student"]
as List<string>)
{
@student
}
</ul>
TempData is a dictionary which is derived from TempDataDictionary class. TempData is stored data just like live session for short time. TempData Keep data for the time of HTTP Request it mean that it hold data between two consecutive requests. TempData help us to transfer data between controllers or between actions. TempData internally use Session variables. Note that TempData is only work during the current and subsequent request. It is generally used to store one time message. With the help of TempData.Keep() method we can keep value in TempData object after request completion.
TempData Example
TempData is a dictionary which is derived from TempDataDictionary class. TempData is stored data just like live session for short time. TempData Keep data for the time of HTTP Request it mean that it hold data between two consecutive requests. TempData help us to transfer data between controllers or between actions. TempData internally use Session variables. Note that TempData is only work during the current and subsequent request. It is generally used to store one time message. With the help of TempData.Keep() method we can keep value in TempData object after request completion.
TempData Example
//Controller Code
public ActionResult Index()
{
List<string> Student = new List<string>();
Student.Add("Buddhi");
Student.Add("Vineet");
Student.Add("Rakesh");
TempData["Student"] = Student;
return View();
}
//page code
<ul>
@foreach (var
student in ViewData["Student"]
as List<string>)
{
@student
}
</ul>
ViewData VS ViewBag VS TempData
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
is also work with .net framework 3.5 and above
|
ViewBag
is only work with .net framework 4.0 and above
|
TempData
is also work 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
|
It value
become null if redirection is 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 is
only work during the current and subsequent request
|
No comments :
Post a Comment