图像我有一个使用 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 .. 并且它得到了很多点击,那么您不希望它一直写入数据库 .. 但只有当它达到某个数字时 .. 然后 'flush ' 输出。
有人有什么想法吗?