ASP.NET MVC 2 VirtualPathProvider GetFile每次都针对每个请求

时间:2010-09-19 23:12:06

标签: asp.net-mvc asp.net-mvc-2 virtualpathprovider

我已经实现了VirtualPathProvider。 VirtualPathProvider从文件系统中读取视图。

但是我的问题是每次请求都没有执行GetFile(string virtualPath)方法。我认为这与缓存有关,不是吗?我想要的是每次请求获取文件。因为在某些情况下,文件系统中的页面将被修改,用户希望系统立即显示更改。

感谢。

2 个答案:

答案 0 :(得分:16)

我自己在互联网上找到了解决方案。

非常感谢 jbeall 在07-15-2008,11:05 AM回复。

http://forums.asp.net/t/1289756.aspx

简而言之,请覆盖以下方法

  1. GetCacheDependency - 始终返回null
  2. GetFileHash - 始终返回不同的值
  3. 在这些修改之后,对于每个请求,MVC直接从源获取文件。

答案 1 :(得分:0)

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();

    }
}