Asp.net mvc ASP.NET MVC 2 VirtualPathProvider每次为每个请求提供GetFile
我已经实现了一个VirtualPathProvider。VirtualPathProvider从文件系统读取视图 然而,我的问题是方法Asp.net mvc ASP.NET MVC 2 VirtualPathProvider每次为每个请求提供GetFile,asp.net-mvc,asp.net-mvc-2,virtualpathprovider,Asp.net Mvc,Asp.net Mvc 2,Virtualpathprovider,我已经实现了一个VirtualPathProvider。VirtualPathProvider从文件系统读取视图 然而,我的问题是方法GetFile(stringvirtualpath)并不是每次对每个请求都执行。我认为这与缓存有关,不是吗?我想要的是每次为每个请求获取文件。因为在某些情况下,文件系统中的页面将被修改,用户希望系统立即显示更改 谢谢。我自己在互联网上找到了解决方案 非常感谢jbeall于2008年7月15日上午11:05回复 简而言之,重写以下方法 GetCacheDepend
GetFile(stringvirtualpath)
并不是每次对每个请求都执行。我认为这与缓存有关,不是吗?我想要的是每次为每个请求获取文件。因为在某些情况下,文件系统中的页面将被修改,用户希望系统立即显示更改
谢谢。我自己在互联网上找到了解决方案 非常感谢jbeall于2008年7月15日上午11:05回复 简而言之,重写以下方法
GetCacheDependency
-始终返回nullGetFileHash
-始终返回不同的值在这些修改之后,对于每个请求,MVC都会直接从源代码获取文件。在调试模式下,是否每次都会调用提供程序?如果是,那么它是缓存,因为启用调试时视图缓存被禁用。感谢您的回复。每个请求都会调用virtualPath Provider,但每个请求都只会调用
bool FileExists(string virtualPath)
方法。我试图覆盖VirtualPathProvider中的所有方法,但仍然找不到解决方案。
public class MyVirtualPathProvider : VirtualPathProvider
{
public override CacheDependency GetCacheDependency(string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
{
return null;
}
public override String GetFileHash(String virtualPath, IEnumerable virtualPathDependencies)
{
return Guid.NewGuid().ToString();
}
}