كيفية إزالة OutputCache برمجيا لASCX؟
-
20-09-2019 - |
سؤال
ولدي page1.aspx:
<%@ Register src="uc1.ascx" tagname="UcHead" tagprefix="uc1" %>
ووuc1.ascx باستخدام OutputCache
:
<%@ OutputCache Duration="18000" VaryByParam="*" %>
وكيف يمكنني فوق زر في page2.aspx آخر لإزالة OutputCache
لuc1.ascx أو page1.aspx؟
وعندما OutputCache في page1.aspx، I يمكن استخدام التعليمات البرمجية التالية لإزالة OutputCache:
string url = "/page1.aspx";
HttpResponse.RemoveOutputCacheItem(url);
ولكن لم يحدث ذلك العمل عندما OutputCache في uc1.ascx.
المحلول
وطيب جرب هذا
في تحميل الصفحة من التحكم الخاصة بك وضعت:
HttpRuntime.Cache.Insert("myCacheKey", DateTime.Now);
BasePartialCachingControl pcc = Parent as BasePartialCachingControl;
pcc.Dependency = new CacheDependency(null, new string[]{"myCacheKey"});
تغيير المفتاح إلى ما تريد أن يكون لسيطرتك.
وبعد ذلك في رمز للحدث الذي تريد مسح ذاكرة التخزين المؤقت وضع:
Cache.Insert("myCacheKey", DateTime.Now);
ورأيت هذا الحل على http://dotnetslackers.com/ASP_NET/re-63091_ASP_NET_clear_user_control_output_cache.aspx
واختبرته ويبدو أن العمل، على الرغم من أنني لا يجب أن بتحديث الصفحة مرة أخرى بعد أن نسمي هذا مثل لرؤية المحتوى التحكم المحدثة.
لا تنتمي إلى StackOverflow