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

  • 相关阅读:
    Zabbix监控MySQL免密码设置
    NFS文件服务器搭建
    Glufster挂载失败Mount failed. Please check the log file for more details解决办法
    CentOS和Redhat救援模式
    CentOS和Redhat单用户模式
    EXSI中Linux安装tools
    Redhat7.5安装glusterfs4
    思科交换机根据mac地址限制主机
    怎么关闭win10防火墙
    [0] WCF开发下,提示HTTP 无法注册 URL 进程不具有此命名空间的访问权限
  • 原文地址:https://www.cnblogs.com/damonlan/p/MVC3.html
Copyright © 2011-2022 走看看