zoukankan      html  css  js  c++  java
  • MVC3之ViewData与ViewBag

    首先先用代码来说话:

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

    ViewBag:

    1 public 
     2 ActionResult Index()
     3 {
     4 List<string>
     5  colors = new 
     6 List<string>();
     7 colors.Add("red");
     8 colors.Add("green");
     9 colors.Add("blue");
    10 ViewBag.ListColors = colors; //colors
    11  is List
    12 ViewBag.DateNow
    13  = DateTime.Now;
    14 ViewBag.Name
    15  = "Hajan";
    16 ViewBag.Age
    17  = 25;
    18 return 
    19 View(); 
    20 }

    View 中对两者的使用:

    1.使用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>
    2.使用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>

    效果:

    ViewData:生命周期和View相同,仅对当前View有效。

    ViewBag:和ViewData生命周期相同,也是对但前View有效,不同的是ViewBag的类型不再是字典的键值对结构,而是dynamic动态类型,属于MVC3里面新增的部分.

    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中查询数据时不需要类型转换
    有一些类型转换代码 可读性更好
  • 相关阅读:
    前后端交互, 安装drf, restful接口规范, pycharm断点调试
    django中文设置, axios, CORS, 全局js配置, Vue配置jq + bs
    js原型, Vue项目环境搭建, Vue项目目录结构, Vue项目生命周期, 小组件使用, 全局样式, 路由跳转, 组件的生命周期钩子, 路由传参
    Vue组件
    Vue表单指令, 条件指令, 循环指令, 成员
    question1 赋值运算操作符
    CH15 面向对象程序设计
    CH12 动态内存
    CH11 关联容器
    CH10 泛型算法
  • 原文地址:https://www.cnblogs.com/kingsony/p/3335314.html
Copyright © 2011-2022 走看看