zoukankan      html  css  js  c++  java
  • ASP.NET MVC3中的ViewBag动态性

    这些天在学习MVC3 ,因为在和我的mentor在开发一个公司内部的项目,所以就开始学习MVC,前些天学习Razor引擎的时候,看到国外的一篇文章介绍ViewBag的,就拿过来,原文请点击这里:ViewBag dynamic in ASP.NET MVC3

    在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>
         My name is 
        <b><%: ViewData["name"] %></b>, 
        <b><%: ViewData["age"] %></b> years old.
         <br />    
         I like the following colors:
     </p>
     <ul id="colors">
     <% foreach (var color in ViewData["listColors"] as List<string>){ %>
         <li>
            <font color="<%: color %>"><%: color %></font>
        </li>
     <% } %>
     </ul>
     <p>
         <%: ViewData["dateNow"] %>
     </p>
    

     Eample :-Using ViewBag

    Controller

    public ActionResult Index()
     {
         List<string> colors = new List<string>();
         colors.Add("red");
         colors.Add("green");
         colors.Add("blue");
     
        ViewBag.ListColors = colors; //colors is List
         ViewBag.DateNow = DateTime.Now;
         ViewBag.Name = "Hajan";
         ViewBag.Age = 25;
         return View(); 
    }
    

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

    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来检索它们。

  • 相关阅读:
    UVa 10118 记忆化搜索 Free Candies
    CodeForces 568B DP Symmetric and Transitive
    UVa 11695 树的直径 Flight Planning
    UVa 10934 DP Dropping water balloons
    CodeForces 543D 树形DP Road Improvement
    CodeForces 570E DP Pig and Palindromes
    HDU 5396 区间DP 数学 Expression
    HDU 5402 模拟 构造 Travelling Salesman Problem
    HDU 5399 数学 Too Simple
    CodeForces 567F DP Mausoleum
  • 原文地址:https://www.cnblogs.com/damonlan/p/MVC3.html
Copyright © 2011-2022 走看看