ASP.NET MVC 入门 6、TempData

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中这样来给用户显示提示信息:


好,这一部分就先到这里吧。

本文示例Blog的代码下载

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, session
, 方法
, 一个
, TempData
临时
,以便于您获取更多的相关知识。

时间: 2024-11-02 19:00:36

ASP.NET MVC 入门 6、TempData的相关文章

ASP.NET MVC入门 8、ModelState与数据验证

ViewData有一个ModelState的属性,这是一个类型为ModelStateDictionary的 ModelState类型的字典集合.在进行数据验证的时候这个属性是比较有用的.在 使用Html.ValidationMessage()的时候,就是从ViewData.ModelState中检测是否 有指定的KEY,如果存在,就提示错误信息.例如在前一篇文章ASP.NET MVC 入门 7.Hellper与数据的提交与绑定中使用到的UpdateModel方法: 我们在View中使用Html.

ASP.NET MVC 入门介绍 (上)

参考文章 ASP.NET MVC Overview. 1. MVC模式 MVC模式是一种软件架构模式.它把软件系统分为三个部分:模型(Model),视图(View)和控制器(Controller).MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,

一起谈.NET技术,ASP.NET MVC 入门介绍 (上)

参考文章 ASP.NET MVC Overview. 1. MVC模式 MVC模式是一种软件架构模式.它把软件系统分为三个部分:模型(Model),视图(View)和控制器(Controller).MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,

ASP.NET MVC 入门介绍 (下)

相关文章:ASP.NET MVC 入门介绍 (上) 接上文,我们来完善验证功能.在System.ComponentModel.DataAnnotations命名空间中,已经有了一些基本的属性类来实现验证功能,只要把这些属性加到Model的字段上就可以了.具体的属性类可以查MSDN, 下面给出一个例子: public class Movie{ [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]public int ID { get;

一起谈.NET技术,ASP.NET MVC 入门介绍 (下)

相关文章:ASP.NET MVC 入门介绍 (上) 接上文,我们来完善验证功能.在System.ComponentModel.DataAnnotations命名空间中,已经有了一些基本的属性类来实现验证功能,只要把这些属性加到Model的字段上就可以了.具体的属性类可以查MSDN, 下面给出一个例子: public class Movie{ [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]public int ID { get;

ASP.NET MVC 入门 4、Controller与Action

Controller是MVC中比较重要的一部分.几乎所有的业务逻辑都是在这里进行 处理的,并且从Model中取出数据.在ASP.NET MVC Preview5中,将原来的 Controller类一分为二,分为了Controller类和ControllerBase类.Controller 类继承自ControllerBase类,而ControllerBase实现是了IController接口. ControllerBase实现了IController接口的Execute方法,在Route匹配到

Asp.net Mvc 入门视频教程(试水)

也是很久之前就想录这个了,可是一直没有时间,终于能抽出一个下午,于是就尽可能的做了一些 比之老赵的视频尚有很大差据,所以这也仅当做我试手的一次录制. 如果视频有问题的话就尽管提. 录制的内容都是基础中的基础的,是以最简单的应用为例的. 专辑: http://www.youku.com/playlist_show/id_2416830.html 订阅: http://www.youku.com/playlist/rss/id/2416830 视频里应该有丟丟落落没说到的地方,最好对比我的文章Asp

ASP.NET MVC入门 11、使用AJAX

在ASP.NET MVC beta发布之前,M$就宣布支持开源的JS框架jQuery,然后 ASP.NET MVC beta发布后,你建立一个ASP.NET MVC beta的项目后,你可以在项 目的scripts目录下找到ASP.NET AJAX和jQuery的JS.反正我是比较喜欢jQuery的 ,所以对于M$此举还是挺欣慰的. 废话不多说,我们使用AJAX来实现发表 评论的功能吧.先来看看怎样使用M$的JS框架来进行异步AJAX请求. 首先 ,当然是要引入M$的AJAX框架的JS: <sc

ASP.NET MVC入门 9、Action Filter 与 内置的Filter实现(介绍)

有时候你想在调用action方法之前或者action方法之后处理一些逻辑,为了支 持这个,ASP.NET MVC允许你创建action过滤器.Action过滤器是自定义的 Attributes,用来标记添加Action方法之前或者Action方法之后的行为到控制器 类中的Action方法中. 一些可能用到Action过滤器的地方有: 日 志,异常处理 身份验证和授权 - 限制用户的访问 输出缓存 - 保 存一个Action的结果 网络爬虫的过滤 本地化 动态Action - 将一个Action注