mvc中viewdata 和viewbag的区别

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中查询数据时不需要类型转换
有一些类型转换代码                                                                              可读性更好

用代码说明问题:

后台:

ViewData:
List colors = new List();
colors.Add("red");
colors.Add("green");
colors.Add("blue");
ViewData["listColors"] = colors;
ViewData["dateNow"] = DateTime.Now;
ViewData["name"] = "Hajan";
ViewData["age"] = 25;
return View();


ViewBag:
List colors = new List();
colors.Add("red");
colors.Add("green");
colors.Add("blue");
ViewBag.ListColors = colors;
ViewBag.DateNow = DateTime.Now;
ViewBag.Name = "Hajan";
ViewBag.Age = 25;
return View();

前台:

ViewData:

My name is @ViewData["name"] ,@ViewData["age"] years old.
I like the following colors:

    @foreach (var color in ViewData["listColors"] as List)
    {
  • @color

  • }

@ViewData["dateNow"]

 

ViewBag:

My name is @ViewBag.Name, @ViewBag.Age years old.
I like the following colors:


    @foreach (var color in ViewBag.ListColors)
    {
  • @color

  • }

@ViewBag.DateNow

 

本文代码部分转自:http://blog.csdn.net/a497785609/article/details/7854402

你可能感兴趣的:(mvc中viewdata 和viewbag的区别)