zoukankan      html  css  js  c++  java
  • 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<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();


    ViewBag:
    List<string> colors = new List<string>();
    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:
    <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>

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

  • 相关阅读:
    C++ 使用老牌库xzip & unzip对文件进行压缩解压
    第一次玩蛇,有点紧张。
    fiddler 抓取手机http/https包
    disk或者Partition镜像的制作
    VS2013+phread.h环境配置
    C++ 浅谈 strlen 与 sizeof的区别
    Qt 显示网页的控件
    Qt error: C2236: 意外的标记“class”。是否忘记了“;”?
    初识MySQL——人生若如初相逢
    【学习笔记】HTML基础:列表、表格与媒体元素
  • 原文地址:https://www.cnblogs.com/liudehua/p/3398087.html
Copyright © 2011-2022 走看看