视图数据可以通过ViewBag属性访问,它主要是为了从Controller到view进行传值用的,类似有所使用的ViewData[] 字典类。

 

一、ViewBag的定义

 
C# 代码   复制
ViewData与ViewBag的区别

{
{
{
ViewData与ViewBag的区别            _dynamicViewData = new DynamicViewDataDictionary(() => ViewData);
ViewData与ViewBag的区别        }
ViewData与ViewBag的区别return _dynamicViewData;
ViewData与ViewBag的区别    }
ViewData与ViewBag的区别}
ViewData与ViewBag的区别

 

二、ViewData的定义

 
C# 代码   复制
ViewData与ViewBag的区别

{
{
{
ViewData与ViewBag的区别            SetViewData(new ViewDataDictionary());
ViewData与ViewBag的区别        }
ViewData与ViewBag的区别return _viewData;
ViewData与ViewBag的区别    }
{
ViewData与ViewBag的区别        SetViewData(value);
ViewData与ViewBag的区别    }
ViewData与ViewBag的区别}
ViewData与ViewBag的区别

 

三、ViewData与ViewBag的区别

 

1、ViewData是字典类型,赋值方式用字典方式,通过key值读取对应的value, ViewData["myName"]

2、ViewBag是动态类型,使用时直接添加属性赋值即可 ViewBag.myName

3、ViewBag和ViewData只在当前Action中有效,等同于View

4、ViewData和ViewBag 中的值可以互相访问,因为ViewBag的实现中包含了ViewData

 

四、ViewData与ViewBag的实例

 

1、ViewData

(1)、在Controller中使用ViewData

 
C# 代码   复制
ViewData与ViewBag的区别

ViewData与ViewBag的区别public ActionResult UsingViewData()
{
ViewData与ViewBag的区别ViewData与ViewBag的区别    ViewData["Title"] = " Using ViewData";
ViewData与ViewBag的区别    ViewData["ProjectName"] = "My Test Project";
ViewData与ViewBag的区别    ViewData["ProjectDescription"] = "This is Test Project to demo Viewdata and viewbag details";
ViewData与ViewBag的区别    ViewData["StartDate"] = new DateTime(2011, 1, 1);
ViewData与ViewBag的区别    ViewData["TotalPrice"] = 1000;
ViewData与ViewBag的区别    ViewData["TotalDays"] = 100;
ViewData与ViewBag的区别    Dictionary<string, string> stackholder = new Dictionary<string, string>();
ViewData与ViewBag的区别    stackholder.Add("Client","Mr.  Client");
ViewData与ViewBag的区别    stackholder.Add("Manager","Mr. Joy");
ViewData与ViewBag的区别    stackholder.Add("Team Leader","Mr.Toy");
ViewData与ViewBag的区别    stackholder.Add("Sr. developer", "Mr.dojoy");
ViewData与ViewBag的区别    stackholder.Add("developer", "Mr. nodoy");
ViewData与ViewBag的区别    ViewData["stackholder"] = stackholder;
ViewData与ViewBag的区别ViewData与ViewBag的区别    List<string> modules = new List<string>();
ViewData与ViewBag的区别    modules.Add("Admin module");
ViewData与ViewBag的区别    modules.Add("ShoppingCart module");
ViewData与ViewBag的区别    modules.Add("CMS module");
ViewData与ViewBag的区别    ViewData["modules"] = modules;
ViewData与ViewBag的区别return View();
ViewData与ViewBag的区别}
ViewData与ViewBag的区别

 

(2)、对应UsingViewData View的cshtml

 
HTML 代码   复制
ViewData与ViewBag的区别

ViewData与ViewBag的区别<h1>@ViewData["Title"]</h1>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别<h2>Project Name : @ViewData["ProjectName"]</h2>
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别     ProjectDescription :   
ViewData与ViewBag的区别<p>"@ViewData["ProjectDescription"]".</p>
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别      Stack Holder :
ViewData与ViewBag的区别<br />
ViewData与ViewBag的区别ViewData与ViewBag的区别<ul id="stakholder">
ViewData与ViewBag的区别      @foreach ( var stakerholder in ViewData["stackholder"] as Dictionary<string, string> )
ViewData与ViewBag的区别      {          
ViewData与ViewBag的区别<li>
ViewData与ViewBag的区别        @stakerholder.Key &nbsp; : @stakerholder.Value
ViewData与ViewBag的区别</li>
ViewData与ViewBag的区别      }
ViewData与ViewBag的区别</ul>
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别     Project Details:<br />
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别       module List  :
ViewData与ViewBag的区别<ul id="modulelist">
ViewData与ViewBag的区别      @foreach ( var module in ViewData["modules"] as List<string> )
ViewData与ViewBag的区别      {          
ViewData与ViewBag的区别<li>
ViewData与ViewBag的区别        @module
ViewData与ViewBag的区别</li>
ViewData与ViewBag的区别      }
ViewData与ViewBag的区别</ul>
ViewData与ViewBag的区别ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别     Project StartDate : @ViewData["StartDate"]  <br />
ViewData与ViewBag的区别     Project TotalPrice: @ViewData["TotalPrice"] <br />
ViewData与ViewBag的区别     Project TotaDays  : @ViewData["TotalDays"] 
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别

 

2、ViewBag

(1)、在Controller中使用ViewBag

 
C# 代码   复制
ViewData与ViewBag的区别

ViewData与ViewBag的区别public ActionResult UsingViewBag()
{
ViewData与ViewBag的区别ViewData与ViewBag的区别    ViewBag.Title = " Using ViewBag";
ViewData与ViewBag的区别    ViewBag.ProjectName = "My Test Project";
ViewData与ViewBag的区别    ViewBag.ProjectDescription = "This is Test Project to demo Viewdata and viewbag details";
ViewData与ViewBag的区别    ViewBag.StartDate = new DateTime(2011, 1, 1);
ViewData与ViewBag的区别    ViewBag.TotalPrice = 1000;
ViewData与ViewBag的区别    ViewBag.TotalDays = 100;
ViewData与ViewBag的区别    Dictionary<string, string> stackholder = new Dictionary<string, string>();
ViewData与ViewBag的区别    stackholder.Add("Client", "Mr.  Client");
ViewData与ViewBag的区别    stackholder.Add("Manager", "Mr. Joy");
ViewData与ViewBag的区别    stackholder.Add("Team Leader", "Mr.Toy");
ViewData与ViewBag的区别    stackholder.Add("Sr. developer", "Mr.dojoy");
ViewData与ViewBag的区别    stackholder.Add("developer", "Mr. nodoy");
ViewData与ViewBag的区别    ViewBag.stackholder = stackholder;
ViewData与ViewBag的区别ViewData与ViewBag的区别    List<string> modules = new List<string>();
ViewData与ViewBag的区别    modules.Add("Admin module");
ViewData与ViewBag的区别    modules.Add("ShoppingCart module");
ViewData与ViewBag的区别    modules.Add("CMS module");
ViewData与ViewBag的区别    ViewBag.modules = modules;
ViewData与ViewBag的区别return View();
ViewData与ViewBag的区别}
ViewData与ViewBag的区别

 

(2)、对应View UsingViewBag 的cshtml的ViewBag

 
HTML 代码   复制

ViewData与ViewBag的区别


ViewData与ViewBag的区别<h1>@ViewBag.Title</h1>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别<h2>Project Name : @ViewBag.ProjectName</h2>
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别     ProjectDescription :   
ViewData与ViewBag的区别<p>"@ViewBag.ProjectDescription.</p>
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别      Stack Holder :
ViewData与ViewBag的区别<br />
ViewData与ViewBag的区别ViewData与ViewBag的区别<ul id="stakholder">
ViewData与ViewBag的区别      @foreach ( var stakerholder in ViewBag.stackholder )
ViewData与ViewBag的区别      {          
ViewData与ViewBag的区别<li>
ViewData与ViewBag的区别        @stakerholder.Key &nbsp; : @stakerholder.Value
ViewData与ViewBag的区别</li>
ViewData与ViewBag的区别      }
ViewData与ViewBag的区别</ul>
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别     Project Details:<br />
ViewData与ViewBag的区别<div>
ViewData与ViewBag的区别       module List  :
ViewData与ViewBag的区别<ul id="modulelist">
ViewData与ViewBag的区别      @foreach ( var module in ViewBag.modules )
ViewData与ViewBag的区别      {          
ViewData与ViewBag的区别<li>
ViewData与ViewBag的区别        @module
ViewData与ViewBag的区别</li>
ViewData与ViewBag的区别      }
ViewData与ViewBag的区别</ul>
ViewData与ViewBag的区别ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别     Project StartDate : @ViewBag.StartDate.ToString("dd-MMM-yyyy") <br />
ViewData与ViewBag的区别     Project TotalPrice: @ViewBag.TotalPrice  ₹  <br />
ViewData与ViewBag的区别     Project TotaDays  : @ViewBag.TotalDays 
ViewData与ViewBag的区别</div>
ViewData与ViewBag的区别</div>

相关文章: