簡體   English   中英

在用戶控件和VaryByControl中使用緩存

[英]using Caching in user control and VaryByControl

我的asp.net應用程序中有一個用戶控件,它從緩存中加載它的數據。 我希望它的緩存在更改變量的值時更新,因此我將此代碼放在頁面指令上

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

當我像這樣更改標記中的變量值時,它工作正常

 visitIsAu="true"

但是當通過這樣的代碼改變值時,它不起作用

   visitIsAu="<%=this.CurentUser.IsAuthorizedToVisitFiltered%>"

變量的值不會更改,因此不會更新其緩存。

有誰知道為什么會這樣?

出於某種原因,我從未信任ASP.NET使用標記設置或在aspx文件上使用“注入”服務器標記來處理緩存的方式。 我知道它有效,但在簡單場景下控制起來很容易。

在使用用戶控件時,我總是在代碼隱藏級別實現緩存控制,並考慮到頁面生命周期可能有一些捕獲,這取決於我有一定頁面的控件級別。

我們可以:ascx> aspx或ascx> aspx> master。

在您的情況下,您需要保證在加載用戶控件之前設置CurrentUser。 檢查使用debug。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM