none
Session,缓存还有tempdata的关系是什么 RRS feed

  • 问题

  • 我看见MVC中还有tempdata,它和session,缓存有什么联系吗?我什么时候用session,什么时候用缓存,什么时候用tempdata呢?
    2018年9月24日 5:17

全部回复

  • 你好,

    我觉得temp dat应该和ViewBag,ViewData进行比较,因为他们都是用于MVC中传递数据的。

    ViewData和TempData都可以传递弱类型数据

    ViewData 只在当前 Action 中有效,生命周期和 View 相同;

    TempData的数据至多只能经过一次Controller传递,并且每个元素至多只能被访问一次,访问以后,自动被删除。

    ViewData 只在当前 Action 中有效,生命周期和 View 相同;

    TempData 的数据至多只能经过一次Controller传递,并且每个元素至多只能被访问一次,访问以后,自动被删除。

    TempData  

    一般用于临时的缓存内容或抛出错误页面时传递错误信息,可以将TempData 在使用之前存储到相应的 ViewData 中以备循环使用。

     TempData保存在Session中,Controller每次执行请求的时候,会从Session中先获取 TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删 除。

    具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从 ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年9月24日 7:18