我已经实现了一个 VirtualPathProvider。VirtualPathProvider 从文件系统读取视图。
但是我的问题是该方法GetFile(string virtualPath)
并非每次都针对每个请求执行。我认为这与缓存有关,不是吗?我想要的是每次为每个请求获取文件。因为在某些情况下,文件系统中的页面会被修改,用户希望系统立即显示更改。
谢谢。
我已经实现了一个 VirtualPathProvider。VirtualPathProvider 从文件系统读取视图。
但是我的问题是该方法GetFile(string virtualPath)
并非每次都针对每个请求执行。我认为这与缓存有关,不是吗?我想要的是每次为每个请求获取文件。因为在某些情况下,文件系统中的页面会被修改,用户希望系统立即显示更改。
谢谢。
我自己在互联网上找到了解决方案。
非常感谢jbeall于 2008 年 7 月 15 日上午 11:05 回复。
http://forums.asp.net/t/1289756.aspx
简而言之,覆盖以下方法
GetCacheDependency
- 总是返回 nullGetFileHash
- 总是返回不同的值在这些修改之后,对于每个请求,MVC 直接从源获取文件。
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();
}
}