【发布时间】:2008-12-10 14:10:25
【问题描述】:
图像我有一个使用 OutputCache 属性缓存的视图,但我仍然需要增加一个计数器来记录该页面已被查看,我该怎么做?
我想过创建自己的自定义 ActionFilterAttribute,并使用 Action Filter Order of Execution 来记录这一点.. 但我不确定它是否会起作用。
例如。
[IncrementViewCountFilter(Order=1)]
[OutputCache(Duration=60,Order=2)]
public ActionResult Index(int questionId)
{ ... }
首先,我在这里的假设是,如果调用了OutputCache,并且页面被缓存,那么控制器代码将不会被运行。
我猜测的下一个问题是 IncrementViewCountFilter 不知道 questionId,那么它怎么知道要增加什么(因为它是在执行主索引代码之前执行的)。
其次,如果 IncrementViewCountFilter 确实知道 questionId .. 并且它得到了很多点击,那么您不希望它一直写入 DB .. 但只有当它达到某个数字时.. 然后u '刷新'输出。
有人有什么想法吗?
【问题讨论】:
标签: asp.net-mvc outputcache custom-action-filter