ASP.NET MVC3中的ViewBag动态性

在MVC 3中的有一个新的ViewBag 动态特性,它主要是为了从Controller到view进行传值用的,类似有所使用的ViewData[] 字典类。对于ViewBag是如此的强大,意味着你能动态的set/get  值,增加任何数量的的额外字段而不需要强类型的检测。

为了看这些的不同(和不用viewbag的时候),我们来看看一下的实例:

Eample:--using ViewBag

Controller

 

public ActionResult Index()  

 {  

     List<string> colors = new List<string>();  

     colors.Add("red");  

     colors.Add("green");  

     colors.Add("blue");              

    

    ViewData["listColors"] = colors;  

     ViewData["dateNow"] = DateTime.Now;  

     ViewData["name"] = "Hajan";  

     ViewData["age"] = 25;  

    

    return View();  

 } 

View (ASPX View Engine)

p>  

02      My name is  

03     <b><%: ViewData["name"] %></b>,   

04     <b><%: ViewData["age"] %></b> years old.  

05      <br />      

06      I like the following colors:  

07  </p>  

08  <ul id="colors">  

09  <% foreach (var color in ViewData["listColors"] as List<string>){ %>  

10      <li>  

11         <font color="<%: color %>"><%: color %></font>  

12     </li>  

13  <% } %>  

14  </ul>  

15  <p>  

16      <%: ViewData["dateNow"] %>  

17  </p> 


Eample :-Using ViewBag

Controller

public ActionResult Index()  

02  {  

03      List<string> colors = new List<string>();  

04      colors.Add("red");  

05      colors.Add("green");  

06      colors.Add("blue");  

07     

08     ViewBag.ListColors = colors; //colors is List  

09      ViewBag.DateNow = DateTime.Now;  

10      ViewBag.Name = "Hajan";  

11      ViewBag.Age = 25;  

12      return View();   

13 } 


你和上面的对比 你看见了不同吗?

View (ASPX View Engine)

<p>  

     My name is  

    <b><%: ViewBag.Name %></b>,   

    <b><%: ViewBag.Age %></b> years old.  

     <br />      

     I like the following colors:  

 </p>  

 <ul id="colors">  

    

<% foreach (var color in ViewBag.ListColors) { %>  

     <li>  

         <font color="<%: color %>"><%: color %></font>  

     </li>  

 <% } %>  

    

</ul>  

 <p>  

     <%: ViewBag.DateNow %>  

 </p> 


 

在上面的例子以内ViewBag是动态类型的,所以我没有必要把 ViewBag.ListColors 转换成如 List<string>这样子的形式。另一方面,这个ViewData["key"]是一个对方。

如果你在你的Controller中使用ViewData["ListColors"]=Colors,那么你可以在View试图中通过ViewBag.ListColors来检索它们。

 


 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值