ASP.NET MVC的TempData(转载)
2015-12-04 13:11
549 查看
本文章基于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源码:
![](http://images2015.cnblogs.com/blog/66059/201512/66059-20151204131206439-688476371.png)
也就是说TempData只保存到下一个请求中,下一个请求完了之后,TempData就会被删除了。注意这里TempData使用Session来做存储的,Session是对应特定用户的,所以并不存在并发问题。如果你用数据库来做TempData的存储介质的话,必须要考虑这个情况的。至于如何自定义TempData的存储介质,你可以参考“ASP.NET MVC: 用db4o来做TempDataProvider(另附一个泛型的RedirectToAction方法)”这一篇文章。
前面说到的在我们的BaseController中有一个显示提示信息给用户的方法,这个提示信息就是临时的信息,我们可以使用TempData来实现。下面让我们来实现这个提示信息的方法:
因为我们的Controller都继承自这个我们自定义的BaseController,所以我么可以才Controller中这样来给用户显示提示信息:
![](http://images2015.cnblogs.com/blog/66059/201512/66059-20151204131450564-554536378.png)
原文链接
ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信大家都看过“在ASP.NET页面间传值的方法有哪几种”这个面试题,在ASP.NET MVC中TempData的就是其中的一种传值方法。TempData默认是使用Session来存储临时数据的,TempData中存放的数据只一次访问中有效,一次访问完后就会删除了的。这个一次访问指的是一个请求到下一个请求,因为在下一个请求到来之后,会从Session中取出保存在里面的TempData数据并赋值给TempData,然后将数据从Session中删除。我们看一下ASP.NET MVC Preview5源码:
![](http://images2015.cnblogs.com/blog/66059/201512/66059-20151204131206439-688476371.png)
也就是说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中这样来给用户显示提示信息:
![](http://images2015.cnblogs.com/blog/66059/201512/66059-20151204131450564-554536378.png)
原文链接
相关文章推荐
- asp.net实现根据城市获取天气预报的方法
- asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法
- asp.net实现从Txt文件读取数据到数据视图的方法
- asp.net实现数据从DataTable导入到Excel文件并创建表的方法
- asp.net使用DataTable构造Json字符串的方法
- ASP.NET MySQL 中文 乱码
- asp.net mvc 配合前端js的CMD模块化部署思想,小思路
- asp.net文件/大文件上传需要配置的项目整理
- ASP.NET页面之间传递值的几种方式
- asp.net(c#)网页跳转七种方法小结
- asp.net 分页思想+mvc 分页
- Razor:从aspx到cshtml常见错误及正确书写方法
- IIS、Asp.net 编译时的临时文件路径(转载)
- asp.net使用DataTable构造Json字符串的方法
- asp.net实现数据从DataTable导入到Excel文件并创建表的方法
- asp.net实现从Txt文件读取数据到数据视图的方法
- asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法
- asp.net实现根据城市获取天气预报的方法
- asp.net实现图片以二进制流输出的两种方法
- asp.net基于HashTable实现购物车的方法