Asp.net-MVC中Session和ViewData有什么区别?

leo*_*ora 6 asp.net-mvc session viewdata

我什么时候应该使用一个?我想在启动时缓存某个对象并在应用程序周围重用.这听起来像是更好的解决方案(ViewData或Session)?

SLa*_*aks 12

ViewData是一个每请求对象,用于从控制器向视图发送信息.
每个动作调用都有自己的ViewData; ViewData不会超出视图范围.

会话状态是一个每用户存储容器,允许您存储特定用户会话的数据(由cookie标识)

如果要共享全局对象,则应该将其设置为单例(在static属性中)或将其置于"应用程序"状态.
确保它是线程安全的.(或[ThreadStatic]仔细使用田地)