ASP.NET MVC的TempData(转载)

本文章基于ASP.NET MVC Preview5.

ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信大家都看过“在ASP.NET页面间传值的方法有哪几种”这个面试题,在ASP.NET MVC中TempData的就是其中的一种传值方法。TempData默认是使用Session来存储临时数据的,TempData中存放的数据只一次访问中有效,一次访问完后就会删除了的。这个一次访问指的是一个请求到下一个请求,因为在下一个请求到来之后,会从Session中取出保存在里面的TempData数据并赋值给TempData,然后将数据从Session中删除。我们看一下ASP.NET MVC Preview5源码:

也就是说TempData只保存到下一个请求中,下一个请求完了之后,TempData就会被删除了。注意这里TempData使用Session来做存储的,Session是对应特定用户的,所以并不存在并发问题。如果你用数据库来做TempData的存储介质的话,必须要考虑这个情况的。至于如何自定义TempData的存储介质,你可以参考“ASP.NET MVC: 用db4o来做TempDataProvider(另附一个泛型的RedirectToAction方法)”这一篇文章。

前面说到的在我们的BaseController中有一个显示提示信息给用户的方法,这个提示信息就是临时的信息,我们可以使用TempData来实现。下面让我们来实现这个提示信息的方法:

protected ActionResult ShowMsg(List<string> msgs)
{
    TempData["Messages"] = msgs;
    return RedirectToAction("Message");
} 

public ActionResult Message()
{
    return View(TempData["Messages"] as List<string>);
}

因为我们的Controller都继承自这个我们自定义的BaseController,所以我么可以才Controller中这样来给用户显示提示信息:

原文链接

时间: 2024-10-08 03:35:13

ASP.NET MVC的TempData(转载)的相关文章

Asp.Net Mvc: 浅析TempData机制(转发 作者: Tristan G )

Asp.Net Mvc: 浅析TempData机制 环境: Windows 2008, VS 2008 SP1, Asp.Net Mvc 1.0 ------------------------------------------------------------------------------ 一. Asp.Net Mvc中的TempData 在Asp.Net Mvc框架的ControllerBase中存在一个叫做TempData的Property,它的类型为TempDataDictio

ASP.NET MVC 使用TempData

ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信大家都看过"在ASP.NET页面间传值的方法有哪几种"这个面试题,在ASP.NET MVC中TempData的就是其中的一种传值方法.TempData默认是使用Session来存储临时数据的,TempData中存放的数据只一次访问中有效,一次访问完后就会删除了的.这个一次访问指的是一个请求到下一个请求,因为在下一个请求到来之后,会从Sessi

asp.net mvc传文件[转载]

利用Asp.net MVC处理文件的上传下载 如果你仅仅只有Asp.net Web Forms背景转而学习Asp.net MVC的,我想你的第一个经历或许是那些曾经让你的编程变得愉悦无比的服务端控件都驾鹤西去了.FileUpload就是其中一个,而这个控件的缺席给我们带来一些小问题.这篇文章主要说如何在Asp.net MVC中上传文件,然后如何再从服务器中把上传过的文件下载下来. 在Web Forms中,当你把一个FileUpload控件拖到设计器中,你或许没有注意到在生成的HTML中会在for

ASP.NET MVC 入门6、TempData

原帖地址:http://www.cnblogs.com/QLeelulu/archive/2008/10/04/1303948.html ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信大家都看过"在ASP.NET页面间传值的方法有哪几种"这个面试题,在ASP.NET MVC中TempData的就是其中的一种传值方法.TempData默认是使用Session来存储临时数据的,TempDat

[转]ASP.NET MVC 入门6、TempData

ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信大家都看过“在ASP.NET页面间传值的方法有哪几种”这个面试题,在ASP.NET MVC中TempData的就是其中的一种传值方法.TempData默认是使用Session来存储临时数据的,TempData中存放的数据只一次访问中有效,一次访问完后就会删除了的.这个一次访问指的是一个请求到下一个请求,因为在下一个请求到来之后,会从Session中取出

ASP.NET MVC 编程参考

ASP.NET MVC 编程参考 转载请注明出处:http://surfsky.cnblogs.com MVC    参考 http://msdn.microsoft.com/zh-cn/dd408813.aspx    MVC 的基本思想        ·Module      : 模型.可以看做实体类,可用各种技术实现,例如Microsoft Entity Framework.NHibernate等        ·View        : 视图.可以与某个实体类关联,此时视图则负责展示该

ASP.NET MVC程序传值方式:ViewData,ViewBag,TempData和Session

转载原地址 http://www.cnblogs.com/sunshineground/p/4350216.html 在ASP.NET MVC中,页面间Controller与View之间主要有以下几种小量数据的传值方式:ViewData.ViewBag.TempData和Session变量. 下面就这四种传值方式做出详细介绍. 一.ViewData ViewData是一个继承自ViewDataDictionary类的Dictionary对象,它只能存储String Key/Object Valu

在ASP.Net MVC 中如何实现跨越Session的分布式TempData

Hi,guys!Long time no see! 1.问题的引出 我相信大家在项目中都使用过TempData,TempData是一个字典集合,一般用于两个请求之间临时缓存数据或者页面之间传递消息.也都知道TempData是用Session来实现的,既然是用Session来实现的,那么模式就是线程模式,这样的Session是没法用到分布式系统中的,那么在多台机器上部署,怎么做到Session在多台机器中共存,这就涉及到分布式存储.那该如何实现TempData的分布式存储?在讲如何实现时,先给大家

ASP.NET MVC TempData使用心得

说明: 在ASP.NET MVC中資料傳遞主要有ViewData與TempData ViewData主要是Controller傳遞Data給View,存留期只有一個Action,要跨Action要使用TempData, 而TempData依TempDataProvider的不同,會有不同的存留期,預設的TempDataProvider是SessionStateTempDataProvider, 你沒有看錯,預設是用Session來存放TempData, Session不是使用者存放資料,而且存留