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

  • 相关阅读:
    【Oracle11g】06_网络配置
    【Python3 爬虫】U20_正则表达式爬取古诗文网
    【Oracle11g】05_完整性约束
    【Python3 爬虫】U19_正则表达式之re模块其他函数
    【Python3 爬虫】U18_正则表达式之group分组
    【Python3 爬虫】U17_正则表达式之转义字符和原生字符
    【Python3 爬虫】U16_正则表达式之开始结束和或语法
    常见的概率分布
    广义线性模型
    gamma函数及相关其分布
  • 原文地址:https://www.cnblogs.com/damonlan/p/MVC3.html
Copyright © 2011-2022 走看看