zoukankan      html  css  js  c++  java
  • Asp.net MVC中的ViewData与ViewBag的区别

    在Asp.net MVC 3 web应用程序中,我们会用到ViewDataViewBag,对比一下:

    ViewData ViewBag
    它是Key/Value字典集合 它是dynamic类型对像
    从Asp.net MVC 1 就有了 ASP.NET MVC3 才有
    基于Asp.net 3.5 framework 基于Asp.net 4.0与.net framework
    ViewData比ViewBag快 ViewBag比ViewData慢
    在ViewPage中查询数据时需要转换合适的类型 在ViewPage中查询数据时不需要类型转换
    有一些类型转换代码 可读性更好

     

     

     

     

     

     

     

    ViewBag属性:

    public dynamic ViewBag {
        get {
            if (_dynamicViewData == null) {
                _dynamicViewData = new DynamicViewDataDictionary(() => ViewData);
            }
            return _dynamicViewData;
        }
    }

    ViewData属性:

    public ViewDataDictionary ViewData {
        get {
            if (_viewData == null) {
                SetViewData(new ViewDataDictionary());
            }
            return _viewData;
        }
        set {
            SetViewData(value);
        }
    }

    具体实例如下:

    在Controller中使用ViewData:

    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();
    }

    ViewData对应的index.cshtml页面:

    <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>

    在Controller中使用ViewBug:

    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(); 
    } 

    ViewBug对应的index.cshtml页面:

    <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>
  • 相关阅读:
    Key-Value Memory Network
    Deep Mask Memory Network with Semantic Dependency and Context Moment for Aspect Level Sentiment Clas
    Deep Memory Network在Aspect Based Sentiment方向上的应用
    Deep Memory Network 深度记忆网络
    Self Attention 自注意力机制
    Attention基本公式及其变种
    *端策略优化算法(PPO)
    Policy Gradient 算法
    一本通 农场派对
    A
  • 原文地址:https://www.cnblogs.com/liyuxin/p/3014849.html
Copyright © 2011-2022 走看看