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"] asList<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"] asList<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
|
No comments:
Post a Comment