Difference between
ViewData and ViewBag
Both objects ViewData and ViewBag used to pass data from
Controller to View and From View to Controller.
ViewData is a dictionary object where you can put data,
which then becomes available to the view.
ViewData is a derivative of the ViewDataDictionary class, so
you can access by the familiar “key/value” syntax.
ViewBag uses the dynamic feature and it allows an object to dynamically have
properties added to it.
As ViewBag is a dynamic property, instead of writing
ViewData[“Value”]=”someValue”, we can write ViewBag.Value=”SomeValue”.
We can just get or
set properties and it will resolve them dynamically at run time.
ViewBag internally uses ViewData to store the values,
ViewBag properties
are stored as name/value pairs in the ViewData dictionary.
Note : Values stored
in ViewData can be accessed by ViewBag and vice versa.
Example below
Controller
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcTextApplication.Controllers
{
public class ViewBagController : Controller
{
public ActionResult
VDataSample1()
{
List<string>
Prices = new List<string>();
Prices.Add("109.09");
Prices.Add("110.98");
ViewData["Prices"] =
Prices;
ViewData["FundName"] = "US Microcap";
ViewData["FundClass"] = "Class A";
List<string>
Currency = new List<string>();
Currency.Add("USD");
Currency.Add("GBP");
Currency.Add("EURO");
ViewBag.CurrenyList = Currency;
ViewBag.FundDate = DateTime.Now.ToString();
return View();
}
}
}
View
<h2>Simple View data Sample</h2>
<p>
<b style="color:Red"><u> Fund Details
using View Data</u></b><br />
<b>Fund Name
: <%: ViewData["Fund Name"]%></b><br />
<b>Fund Class :
<%: ViewData["FundClass"]%></b><br />
<b>FundDate(storen in ViewBag) : <%: ViewData["FundDate"]%></b>
</p>
<b style="color:Red"><u> Fund Prices</u></b>
<ul id="Funds">
<% foreach
(var price in
ViewData["Prices"] as List<string>)
{ %>
<li>
<%: price %>
</li>
<% } %>
</ul>
<b style="color:Red"><u> View Bag Currency LIST</u></b>
<ul id="Ul2">
<% foreach
(var cur in
ViewData["CurrenyList"] as List<string>)
{ %>
<li>
<%: cur%>
</li>
<% } %>
</ul>
<hr />
<p>
<b style="color:Red"><u> Fund Details
using ViewBag</u></b><br />
<b>Fund Name
: <%:
ViewBag.FundName %></b><br />
<b>Fund Class : <%:
ViewBag.FundClass%></b><br />
<b style="color:Red"><u> Fund Prices</u></b>
</p>
<ul id="Ul1">
<% foreach
(var price in
ViewBag.Prices)
{ %>
<li>
<%: price %>
</li>
<% } %>
</ul>
<b style="color:Red"><u>Currency List</u></b>
<ul id="Ul3">
<% foreach
(var cur in
ViewBag.CurrenyList)
{ %>
<li>
<%: cur %>
</li>
<% } %>
</ul>
OutPut :
great work..Lavi..daily reader of
ReplyDeletehttp://paradise-coding.blogspot.in