0

我们有一个站点,所有页面都被输出缓存,即缓存在 aspx 级别,VaryByParam="*"。现在有一个要求来做一个盖洛普控件,即一个小的“这个站点如何为你工作?” 然后当用户单击答案时,会显示结果。

Gallup 实现为添加到母版页的用户控件,因此可以将 Gallups 添加到在 cms 中创建了 Gallup 的任何页面。问题是输出缓存自然会缓存所有点击,因此当用户没有 2 票时,他会看到在对该替代方案进行第一次投票后计算的结果。

现在我正在尝试使用缓存替换。我在用户控件曾经所在的位置添加了一个 asp:Substition 标记,动态加载控件并呈现它(使用这种方法http://coderwall.com/p/4ajzqq)。问题是投票触发的回发永远不会被触发。显然,替代控件执行的方法是在页面生命周期之外加载或为时已晚。

有任何想法吗?

问候, 马蒂亚斯

4

2 回答 2

2

我通过跳过替换控件解决了这个问题,只是像往常一样使用用户控件,所以盖洛普/问题视图被缓存了输出。然后在我添加的答案选项的点击处理程序中, Response.Cache.SetNoServerCaching(); 它从输出缓存中排除了结果视图,因此它被更新了。

于 2012-09-13T11:39:52.823 回答
0

也可以使用 VaryByCustom 在 Global.asax 中使用 Response.Cache.SetNoServerCaching()。它只需要在 Global.asax 中检测页面是否为回发。是一个代码示例。

于 2015-06-12T19:50:23.747 回答