....
我々は、ビューがキャッシュされないことを確実にするためにGetCacheDependencyコールをオーバーライドしてしまいました。 (私たちはビューを手動でキャッシュします)。 FakeCacheDependencyを作成して、キャッシュの最終更新日を使用する必要がありました。
私たちのアプリケーションでは、仮想ビューはCondorVirtualFilesと呼ばれています。ビューエンジンを構築するときには、名前を付けておく必要があります。
public override System.Web.Caching.CacheDependency GetCacheDependency(string virtualPath, System.Collections.IEnumerable virtualPathDependencies, DateTime utcStart)
{
var view = this.GetFile(virtualPath);
if (view is CondorVirtualFile)
{
FakeCacheDependency fcd = new FakeCacheDependency((view as CondorVirtualFile).LastModified);
return fcd;
}
return base.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}
public class FakeCacheDependency : System.Web.Caching.CacheDependency
{
public FakeCacheDependency(DateTime lastModified)
{
base.SetUtcLastModified(lastModified);
}
public FakeCacheDependency()
{
base.SetUtcLastModified(DateTime.UtcNow);
}
}
ブラウザを表示していないMVCであることを確認してください。 ctrl-F5を押して、ビューが呼び出されたかどうかを確認します。 –
質問とその答えをありがとう、それはDLL内のビューを持つときに私のむしろ迷惑なキャッシングの問題を解決! –