ASP.NET MVC中,Controller向View传递数据的方式有一下6种

  • ViewData
  • ViewBag
  • PartialView
  • TempData
  • ViewModel
  • Tuple

1、ViewData和ViewBag

  ViewData使用键值对Key/Value存储对象,ViewBag通过动态类型dynamic存放对象

  ViewData在View中使用的时候要转换为相应类型,而ViewBag可以作为属性直接使用(但没有智能提示)

  ViewData的存取效率比ViewBag快

  ViewData["key1"] = "value1";
  ViewData["key2"] = 15;

  ViewBag.Key1 = "value1";
  ViewBag.Key2 = 15;

2、Tuple和ViewModel

  Tuple就是ViewModel,用来存放多个元素的集合(做多可以存放7个元素),然后通过Model传递到View,在View中设置强类型视图,就可以通过@Model来访问

  var tuple = new Tuple<string, string>("value1", "value2");
  return View(tuple);

  在View页面中添加model的定义
  @model Tuple<string, string>

3、PartialView   

  通过PartialView包装一些重用代码,可以在需要的时候直接调用,也可以用于异步请求时作为html返回

  可以在View中直接调用  @Html.RenderPartial("_PartialView");

  也可以用于异步请求是返回部分html代码

4、TempData  

  TempData和ViewData一样,也是用键值对Key/Value存储,但数据保存在Session,每一次读取后会删除数据,支持跨Action访问

  如果读取后不想删除,可以调用TempData.Peek("Key")
  如果读取后保存一次,可以调用TempData.Keep("Key")

  

MVC Controller向View传递数据的更多相关文章

  1. ASP.NET MVC2中Controller向View传递数据的三种方式

    转自:http://www.cnblogs.com/zhuqil/archive/2010/08/03/Passing-Data-from-Controllers-to-View.html 在Asp. ...

  2. Controller向View传递数据

    1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData[“Message”] = “Hello word!”; 然后在View中读取Controlle ...

  3. Controller和View传递数据的几种方式

    使用ViewBag存储数据,如ViewBag.time=2012/7/1,View中可以直接用ViewBag("time")的方式取出数据. 使用ViewData存储数据,存储对象 ...

  4. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  5. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  6. ASP.NET MVC 学习笔记-5.Controller与View的数据传递

    ViewData属性 ViewData属性是System.Web.Mvc.ControllerBase中的一个属性,它相当于一个数据字典.Controller中向该字典写入数据,ViewData[“K ...

  7. ASP.NET MVC Controller向View传值方式总结

    Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...

  8. ASP.NET MVC Controller向View传值的几种方式

    上几篇博文提到MVC和WebForm的区别,主要是MVC的Controller和View将传统的WebForm的窗体和后台代码做了解耦,这篇博文简单介绍一下在MVC中Controller向View是如 ...

  9. MVC Controller 与 View 传值

    Controller 到 View 1 强类型 控制器 // GET: /Test/ public ActionResult Index() { DateTime date = DateTime.No ...

随机推荐

  1. shell 删除文件过期文件

    删除创建时间大于30天的文件 find /archivelog -ctime + | xargs rm -rf -amin n #查找系统中最后N分钟访问的文件 -atime n #查找系统中最后n* ...

  2. C#学习笔记(13)——传统方法读取XML

    说明(2017-7-12 16:32:47): 1. LINQ的方法虽然很简单,但是有点不好理解,sql的写法总感觉很诡异,而且LINQ的本质也是用的传统方法,所以还是采用老办法吧! 2. 注释里的代 ...

  3. [转]【MySQL】关于时间的查询,比如本月,本年,本季度

    原文地址:https://www.cnblogs.com/flydkPocketMagic/p/7089324.html -- mysql查询本季度 -- 今天 select * from ticke ...

  4. 点击页面任一地方,js发生响应!

    document.onmousedown = closeAll; function closeAll() { alert("aaaaaaaaaaaa"); }

  5. 收藏mac重装php环境

    参考网址: 全新安装Mac OSX 开发者环境 同时使用homebrew搭建 PHP,Nginx ,MySQL,Redis,Memcache ... ... (LNMP开发环境)

  6. git 管理 Linux 文件系统

    git 管理 Linux 文件系统有两个问题,第一个是 Linux 根文件系统的 root 权限问题,第二个就是git不上传空文件问题. 一. root权限问题的话就得在 root 用户下git , ...

  7. [看门狗]基于Linux的嵌入式系统全程喂狗策略

    转自:http://blog.csdn.net/erickhuang1989/article/details/8721548 在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路. ...

  8. [git]使用vimdiff做git代码比较

    #git 如何实现vimdiffgit config --global diff.tool vimdiff git config --global difftool.prompt false git ...

  9. ListView@常用属性记录

    android:stackFromBottom="true" | "false" 默认false 说明:当listview加载完毕,显示最下面的内容,或者显示最 ...

  10. Ansible 进阶技巧

    原文  http://www.ibm.com/developerworks/cn/linux/1608_lih_ansible/index.html?ca=drs-   简介 Ansible 是一个系 ...