zoukankan      html  css  js  c++  java
  • ViewBag、ViewData、TempData的使用和区别

    ViewBag和ViewData的使用和区别
    1. ViewData:是Key/Value字典类型,赋值方式用字典方式,通过key值读取对应的value,如ViewData["myName"]
    2. ViewBag:是dynamic动态类型,使用时直接添加属性赋值即可ViewBag.myName
    3. ViewData在MVC 1就存在了,而ViewBag则是在MVC 3才存在;
    4. ViewDataViewBag只在当前View中有效,但是ViewData比ViewBag快;
    5. ViewData在视图查询数据的时候需要转换合适的类型,而ViewBag则不需要;
    6. ViewData和ViewBag中的值可以互相访问,因为ViewBag的实现中包含了ViewData;
     1 ViewBag.Message = "Your application description page.";
     2 ViewData["Message"] = "Your application description page.";
     3 List<string> colors = new List<string>();
     4 ViewBag.Listcolors = colors;
     5 ViewData["Listcolors"] = colors;
     6 //在View中访问
     7 @{
     8     List<string> clist = ViewBag.Listcolors as List<string>;
     9     List<string> clist = ViewData["Listcolors"] as List<string>;
    10     //然后通过for/foreach进行使用
    11 }
    12 @ViewData["Message"]
    13 @ViewBag.Message
    • ViewBag中对于键值对集合或者普通集合除了使用foreach进行查找,也可以使用其他方法;
    1 Dictionary<string, string> address = new Dictionary<string, string>();
    2 List<string> modules = new List<string>();
    3 ViewBag.Address = address;
    4 ViewBag.Modules = modules;
    5 //在View中访问
    6 @ViewBag.Address[键值1];@ViewBag.Address[键值2];@ViewBag.Address[键值3];//通过键值进行访问
    7 @ViewBag.Modules[0];@ViewBag.Modules[1];@ViewBag.Modules[2];//通过索引进行访问
     
    • TempData同ViewData和ViewBag一样,TempData也可以用来向视图传递数据,只是ViewData和ViewBag的生命周期和View相同,只对当前View有用,而TempData则可以在不同的Action中进行传值,类似web里的Seesion;但是TempData的值在取了一次后则自动删除,第二次以后在访问值为null;
    1 public ActionResult Index(){
    2     TempData["abc"] = "this is tempdata";
    3     return View();
    4 }
    5 //在About视图里面调用
    6 @TempData["abc"];
  • 相关阅读:
    C#域名解析
    【转】正则基础之——贪婪与非贪婪模式
    【转】正则基础之——神奇的转义
    总结:实例化SqlParameter时,如果是字符型,一定要指定size属性,还有制定具体的类型
    从数据库里随机读取几条数据
    Html异步下载分析
    C#生成验证码程序
    【转】正则应用之——逆序环视探索
    如何用class在Dictionary里面作为Key使用
    【转】SqlDataReader 提前终止的性能问题
  • 原文地址:https://www.cnblogs.com/My-Sun-Shine/p/13520807.html
Copyright © 2011-2022 走看看