分享

Asp.net MVC中的ViewData与ViewBag的区别

 A_POST 2014-08-07


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>

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多