Ich verwende das OutputCache-Attribut auf meiner MVC-Website wie folgt:
%Vor%Aber manchmal möchte ich den Ausgabe-Cache vollständig umgehen und einen Abruf von der Datenbank erzwingen. Dies gilt insbesondere für meine Testumgebung, in der ich kontinuierlich neue Daten in die Datenbank zum Testen lade.
Kann ich in diesem Fall den Cache irgendwie umgehen?
Danke.
Ich brauchte nur eine Cache-Abhängigkeit. Ich brauchte diese Änderung zur Laufzeit geändert werden, so dass Konfigurationsdateien keine Option waren.
Der Aktion, die eine "no-cache" -Option haben soll, wurde Folgendes hinzugefügt:
%Vor%Und die folgende Aktion erstellt, die ich aufrufen kann, um den Cache zu aktualisieren.
%Vor%Anstatt alle Parameter für den Ausgabecache inline anzugeben, können Sie im Attribut ein OutputCache-Profil verwenden.
Mit Ausgabecache-Profilen können Sie alle Einstellungen für den Ausgabe-Cache in Ihrer Datei web.config speichern, dem Profil einen Namen geben und dann von Ihrem Attribut aus auf dieses Profil zeigen.
Sobald Sie diese Einstellung vorgenommen haben, können Sie die Einstellungen in der web.config ändern, mit der Sie debuggen, sodass die Caching-Dauer nur 1 Sekunde beträgt. Offensichtlich würden Sie Ihre Produktion web.config Datei mit einer viel längeren Dauer verlassen.
Weitere Informationen zu Profilen finden Sie in Ссылка
Wenn Sie es komplett ausschalten wollten, könnten Sie
verwenden %Vor%in Ihrer web.config unter.system.web. Wenn Sie es aus dem Code (mit einem Knopf oder etwas anderes) tun möchten, können Sie auch tun:
%Vor%Dies wird wahrscheinlich nur auf Ihrem dev-Rechner funktionieren. Die meisten Server sind so eingerichtet, dass sie das Bearbeiten dieses Abschnitts in der machine.config nicht zulassen.
Dies beantwortet nicht genau Ihre Frage, sondern beantwortet Ihren Titel (was nicht bedeutet, "wie man einen Gegenstand aus dem Cache löscht"):
Sie könnten ein " VaryByParam
" hinzufügen:
Wenn Sie den Cache umgehen wollen, übergeben Sie einfach den Parameter CacheBypass
den Wert DateTime.UtcNow.Ticks
(oder eine beliebige andere Sache) = & gt; zum Beispiel: http://localhost/?CacheBypass=1234567890
Tags und Links asp.net-mvc model-view-controller outputcache