我有一个MVC3应用程序,它正在提供存储在数据库中的视图。我创建了一个VirtualPathProvider
,在我的GetFile
和FileExists
方法中,我转到数据库并返回正确的内容。到目前为止一切都很好。
现在我要缓存从GetFile
返回的视图。我理解MVC已经进行了一些视图缓存,我们通过GetCacheDependency
方法对它进行了一些控制。但我们有更多的控制权吗?例如,我们可以在那里使用自定义缓存吗?在我的情况下,我有兴趣缓存本地文件系统上的视图并执行自己的缓存失效。
一种简单的方法是在我的GetFile
方法中自己做,但如果在MVC中有一个自然的可扩展点,我宁愿使用它。
由于
答案 0 :(得分:1)
我在看某事,发现你的问题,没有得到回答。您需要覆盖GetFileHash()
和GetCacheDependency()
。然后,您需要实现自己的CacheDependency以使ASP.NET缓存失效。
答案 1 :(得分:0)
使用OutputCacheAttribute
http://msdn.microsoft.com/en-us/library/system.web.mvc.outputcacheattribute.aspx
或尝试从中获取。