[英]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.