• MVC ViewData和ViewBag


        视图数据可以通过ViewBag属性访问,它主要是为了从Controller到view进行传值用的,类似有所使用的ViewData[] 字典类。对于ViewBag是如此的强大,意味着你能动态的set/get 值,增加任何数量的的额外字段而不需要强类型的检测。如:

    Controller

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

    Controller

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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();
    }

     你和上面的对比 你看见了不同吗?

     
    View
    对应前台视图:

    1.使用ViewData

    <p>
    My name is <b>@ViewData["name"] </b>,
    <b>
    <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>
    效果图:
     
    ViewBag、ViewData 和 TempData 的区别:
    ViewData 和 TempData 都可以传递弱类型数据,区别如下:
    ViewData 只在当前 Action 中有效,生命周期和 View 相同;
    TempData 的数据至多只能经过一次Controller传递,并且每个元素至多只能被访问一次,访问以后,自动被删除。
    TempData 一般用于临时的缓存内容或抛出错误页面时传递错误信息,可以将TempData 在使用之前存储到相应的 ViewData 中以备循环使用。
     
     
    文章出处:http://www.cnblogs.com/zhangqs008/archive/2012/08/11/2802207.html
     
     
  • 相关阅读:
    win7下安装配置tomcat,java运行环境
    Ubuntu 12.10安装配置JDK7环境
    全面介绍Linux终端命令
    Ubuntu 配置 Tomcat
    Linux手动导入导出mysql数据库
    navicat数据库管理软件(支持mysql,oracle,sqlserver,sqlite,postgreSQL)
    信号量(semaphore)和互斥量(mutex)
    最新版fcitx 4.1.2源码编译安装(ubuntu 10.04)
    Groovy动态语言简介
    读书笔记:《java脚本编程:语言、框架与模式》(2)jvm内部的脚本语言
  • 原文地址:https://www.cnblogs.com/Tmc-Blog/p/4518383.html
Copyright © 2020-2023  润新知