8

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

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

谢谢。

4

2 回答 2

16

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

非常感谢jbeall于 2008 年 7 月 15 日上午 11:05 回复。

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

简而言之,覆盖以下方法

  1. GetCacheDependency- 总是返回 null
  2. GetFileHash- 总是返回不同的值

在这些修改之后,对于每个请求,MVC 直接从源获取文件。

于 2010-09-22T04:31:21.260 回答
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();

    }
}
于 2014-06-04T17:25:20.243 回答