سؤال

ولدي 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

واختبرته ويبدو أن العمل، على الرغم من أنني لا يجب أن بتحديث الصفحة مرة أخرى بعد أن نسمي هذا مثل لرؤية المحتوى التحكم المحدثة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top