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 VS ViewBag VS TempData
Conclusion
We have three options ViewData, ViewBag and TeampData for passing data from controller to view and in next request. ViewData and ViewBag are almost similar and it helps us to transfer the data from controller to view whereas TempData is also work during the current and subsequent request.
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("Jignesh");
Student.Add("Tejas");
Student.Add("Rakesh");
ViewData["Student"] =
Student;
return View();
}
//page code
<ul>
<% foreach (var
student in ViewData["Student"]
as List<string>)
{
%>
<li><%:
student%></li>
<% } %>
</ul>
ViewBag Example
ViewBag Example
//Controller Code
public ActionResult Index()
{
List<string>
Student = new List<string>();
Student.Add("Jignesh");
Student.Add("Tejas");
Student.Add("Rakesh");
ViewBag.Student = Student;
return View();
}
//page code
<ul>
<% foreach (var
student in ViewBag.Student)
{
%>
<li><%:
student%></li>
<% } %>
</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("Jignesh");
Student.Add("Tejas");
Student.Add("Rakesh");
TempData["Student"] =
Student;
return View();
}
//page code
<ul>
<% foreach (var
student in TempData["Student"]
as List<string>)
{
%>
<li><%:
student%></li>
<% } %>
</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
|
Conclusion
We have three options ViewData, ViewBag and TeampData for passing data from controller to view and in next request. ViewData and ViewBag are almost similar and it helps us to transfer the data from controller to view whereas TempData is also work during the current and subsequent request.
0 comments:
Post a Comment