Trả lời câu hỏi của riêng tôi vì lợi ích của các thế hệ tương lai ....
Chúng tôi đã kết thúc cuộc gọi trọng GetCacheDependency để đảm bảo rằng quan điểm là không bao giờ lưu trữ. (Chế độ xem bộ nhớ cache của chúng tôi theo cách thủ công). Chúng tôi đã phải tạo một FakeCacheDependency cho phép chúng tôi sử dụng ngày sửa đổi cuối cùng từ bộ nhớ cache của chúng tôi.
Trong ứng dụng của chúng tôi, các khung nhìn ảo của chúng tôi được gọi là CondorVirtualFiles. (Khi xây dựng công cụ chế độ xem, bạn cần đặt cho nó một cái tên hay.)
public override System.Web.Caching.CacheDependency GetCacheDependency(string virtualPath, System.Collections.IEnumerable virtualPathDependencies, DateTime utcStart)
{
var view = this.GetFile(virtualPath);
if (view is CondorVirtualFile)
{
FakeCacheDependency fcd = new FakeCacheDependency((view as CondorVirtualFile).LastModified);
return fcd;
}
return base.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}
public class FakeCacheDependency : System.Web.Caching.CacheDependency
{
public FakeCacheDependency(DateTime lastModified)
{
base.SetUtcLastModified(lastModified);
}
public FakeCacheDependency()
{
base.SetUtcLastModified(DateTime.UtcNow);
}
}
Nguồn
2011-05-27 15:39:32
Bạn có chắc là MVC đang lưu trong bộ nhớ cache chứ không phải trình duyệt của bạn? ctrl-F5 để xem liệu chế độ xem của bạn có được gọi hay không. –
Cảm ơn câu hỏi và câu trả lời, nó giải quyết vấn đề bộ nhớ đệm khá khó chịu của tôi khi có một cái nhìn bên trong một DLL! –