2012-03-29 13 views
1

Ich habe eine MVC3-Anwendung, die in einer Datenbank gespeicherten Ansichten dient. Ich habe eine VirtualPathProvider erstellt und in meinen GetFile und FileExists Methoden gehe ich zur Datenbank und gebe das richtige zurück. So weit, ist es gut.Caching MVC 3 Ansichten aus einer Datenbank abgerufen

Jetzt möchte ich die Ansicht zwischen GetFile im Cache speichern. Ich verstehe, dass MVC bereits einige Ansichten zwischenspeichert, und wir haben eine Kontrolle über die Methode GetCacheDependency. Aber haben wir mehr Kontrolle? Können wir beispielsweise dort einen benutzerdefinierten Cache verwenden? In meinem Fall bin ich daran interessiert, die Ansichten im lokalen Dateisystem zwischenzuspeichern und meine eigene Cache-Invalidierung durchzuführen.

Ein einfacher Weg wäre, es selbst in meiner GetFile Methode zu tun, aber wenn es einen natürlichen Erweiterungspunkt dafür in MVC gibt, würde ich es lieber stattdessen verwenden.

Dank

Antwort

1

Ich schaute auf etwas, bemerkte Ihre Frage, wurde nicht beantwortet. Sie müssten GetFileHash() zusammen mit GetCacheDependency() überschreiben. Dann müssten Sie Ihren eigenen CacheDependency implementieren, um den ASP.NET-Cache ungültig zu machen.

+0

Sie haben Recht parsh, ich fand, dass nach dem Posten der Frage und vergessen, es zu aktualisieren. Obwohl ich den Eindruck hatte, dass Sie es tun könnten, indem Sie * entweder * GetFileHash oder GetCacheDependency überschreiben. Wir haben es nur mit GetCacheDependency gemacht. – Pedro