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>

  • 相关阅读:
    设置跨域
    Vs自定nuget push菜单
    VS IIS Express 支持局域网访问
    字符串GZIP压缩解压
    C# 使用 protobuf 进行对象序列化与反序列化
    RabbitMQ
    如果调用.net core Web API不能发送PUT/DELETE请求怎么办?
    log4net配置使用
    redis实现消息队列
    Error-the resource is not on the build path of a java project
  • 原文地址:https://www.cnblogs.com/liudehua/p/3398087.html
Copyright © 2011-2022 走看看