我有一个小的CMS,它正在使用从数据库渲染的Razor Views。在您更改其中一个页面之前,一切正常。
当页面被分配到虚拟路径时,MVC或RazorViewEngine
将缓存视图,这是完全合理的。
但是,如果有人进行了更改,我想清除此特定视图的缓存。此外,我想在渲染页面之前清除缓存。所以我的想法是在我的数据库中的View中添加一个“更新的”DateTime
信息(无论如何这个字段都是我们表中的标准字段之一),然后将这个Date与CreateTime相比较。进入HttpRuntime.Cache
。我可以看到在VisualStudio中有一个CreationTime,但我没有经验的反射来获得这个值。
另外,正如我所听到的,Reflection并不是很快,如果每次页面都被渲染时我都必须这样做,那么它会减慢页面的速度。
所以我的问题,可以1.有人帮助我从带有反射的HttpRuntime.Cache
条目中获取CreationTime,或者2.有人知道更好的方法吗?
答案 0 :(得分:0)
我在MVC框架的错误位置,我所追求的是VirtualPathProvider
的缓存,我找到了我必须覆盖的方法。
对于那些面临同样问题的人。
GetCacheDependency
GetFileHash