gpt4 book ai didi

asp.net - 在用户控件和 VaryByControl 中使用缓存

转载 作者:行者123 更新时间:2023-12-02 04:05:17 26 4
gpt4 key购买 nike

我在我的 asp.net 应用程序中有一个用户控件,可以从缓存中加载它的数据。我希望在更改变量的值时更新它的缓存,所以我将此代码放在页面指令上

 <%@ OutputCache Duration="1000" VaryByParam="none"
VaryByControl="visitIsAu" %>

当我像这样更改标记中的变量值时,它工作正常
 visitIsAu="true"

但是当通过这样的代码更改值时它不起作用
   visitIsAu="<%=this.CurentUser.IsAuthorizedToVisitFiltered%>"

变量的值不会改变,因此它的缓存不会更新。

有谁知道为什么会这样?

最佳答案

出于某种原因,我从不信任 ASP.NET 使用标记设置或在 aspx 文件上使用“注入(inject)”服务器标记来处理缓存的方式。我知道它有效,但只有在简单的场景中才能轻松控制。

在使用用户控件时,我总是在代码后面级别实现缓存控制,并考虑到页面生命周期可能会根据我拥有某个页面的控件级别进行一些捕获。

我们可以有:ascx > aspx 或 ascx > aspx > master。

在您的情况下,您需要确保在加载用户控件之前设置 CurrentUser。使用调试检查。

关于asp.net - 在用户控件和 VaryByControl 中使用缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8026695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com