我已經實現了一個VirtualPathProvider。 VirtualPathProvider從文件系統讀取視圖。每次請求ASP.NET MVC 2 VirtualPathProvider GetFile
但是我的問題是每次請求都不會執行每次都執行的方法GetFile(string virtualPath)
。我認爲這與緩存有關,不是嗎?我想要的是每次獲取文件的每個請求。因爲在某些情況下,文件系統中的頁面將被修改,並且用戶希望系統立即顯示更改。
謝謝。
我已經實現了一個VirtualPathProvider。 VirtualPathProvider從文件系統讀取視圖。每次請求ASP.NET MVC 2 VirtualPathProvider GetFile
但是我的問題是每次請求都不會執行每次都執行的方法GetFile(string virtualPath)
。我認爲這與緩存有關,不是嗎?我想要的是每次獲取文件的每個請求。因爲在某些情況下,文件系統中的頁面將被修改,並且用戶希望系統立即顯示更改。
謝謝。
我自己在互聯網上找到了解決方案。
真的很感謝jbeall回覆於07-15-2008,11:05 AM。
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();
}
}
每次處於調試模式時,您的提供者都會被調用嗎?如果是這樣,那麼它就是緩存,因爲啓用調試時禁用視圖緩存。 – Clicktricity 2010-09-20 22:03:59
謝謝你的迴應。每個請求都會調用VirtualPathProvider,但每個請求只調用「bool FileExists(string virtualPath)」方法。我試圖覆蓋VirtualPathProvider中的所有方法,但我仍然找不到解決方案。 – 2010-09-22 04:06:35
實際上,我只是直接從http://padcom13.blogspot.com/2009/04/virtualpathprovider-example.html運行一個示例。 – 2010-09-22 04:11:46