使用outputcache或会话变量

时间:2011-02-04 09:33:58

标签: c# asp.net-mvc session outputcache

我正在使用asp.net mvc 3。

我实施类似于SO的积分系统。我想在每个页面上显示用户点数。我应该将它存储在会话变量中吗?

或者我可以在部分操作上使用outputcache在每个页面上显示它吗? 我不想在每个页面上为此做一个dbcall。

我对会话变量有点不情愿,我听到太多关于他们的混合评论

感谢

1 个答案:

答案 0 :(得分:1)

我不会将它存储在会话中。

如果用户做了影响其积分的事情,则每次都必须更新会话。使用会话来处理用户在您网站上的时间很少变化的内容(例如用户名,偏好等)。

不要忘记,如果有人“赞成”了用户所做的事情 - 除非你打电话给db,你怎么知道呢?

我会使用常规Cache,可能在包含用户代表的表上使用SqlCacheDependency,因此当它更改时,它会使缓存的数据无效。