Ở trên là tốt nếu bạn biết những trang nào bạn muốn xóa bộ nhớ cache. Trong trường hợp của tôi (ASP.NET MVC) tôi tham chiếu cùng một dữ liệu từ khắp nơi. Vì vậy, khi tôi đã thực hiện một [lưu] tôi muốn xóa bộ nhớ cache trang web rộng. Đây là những gì đã làm việc cho tôi: http://aspalliance.com/668
Điều này được thực hiện trong ngữ cảnh của bộ lọc OnActionExecuting. Nó có thể dễ dàng được thực hiện bằng cách ghi đè OnActionExecuting trong một BaseController hoặc một cái gì đó.
HttpContextBase httpContext = filterContext.HttpContext;
httpContext.Response.AddCacheItemDependency("Pages");
Setup:
protected void Application_Start()
{
HttpRuntime.Cache.Insert("Pages", DateTime.Now);
}
Tweak nhỏ: Tôi có một helper mà thêm "thông điệp flash" (Thông báo lỗi, các thông điệp thành công - "Mục này đã được lưu thành công", vv). Để tránh tin nhắn flash hiển thị trên mỗi lần GET tiếp theo, tôi đã phải vô hiệu hóa sau khi viết tin nhắn flash.
Clearing Cache:
HttpRuntime.Cache.Insert("Pages", DateTime.Now);
Hope this helps.
có ai biết điều gì đó như thế này có sẵn cho ASP cổ điển không? – Brettski
Tôi không nghĩ rằng bộ nhớ đệm có sẵn trong ASP, vì vậy không xin lỗi. – GateKiller
Thao tác này sẽ xóa tất cả bộ đệm cho mọi thông số cho trang đó. – Salim