Nello scorso script (https://www.aspitalia.com/script/1443/Sfruttare-Output-Cache-ASP.NET-Core-Controller.aspx) abbiamo visto come, grazie all'attributo OutputCache, possiamo attivare questa funzionalità anche con i controller di ASP.NET Core 7.
Sebbene la sintassi basata su attributi possa sembrare un po' più laboriosa delle lambda expression, uno dei vantaggi dei controller è la possibilità di applicare le impostazioni a livello di controller, così che abbiano effetto su tutte le action contenute al suo interno:
[Route("api/[controller]")] [ApiController] // tutte le action vanno in cache con policy shortCache [OutputCache(PolicyName = "shortCache")] public class CacheController : ControllerBase { [HttpGet("cached")] // questa action va in cache anche senza l'attribute OutputCache public IActionResult Cached(string name) { return this.Ok($"Hello, {name}, time is {DateTime.Now.ToLongTimeString()} and this is cached"); } [HttpGet("notcached")] // per questa action disabilitiamo la cache [OutputCache(NoStore = true)] public IActionResult NotCached(string name) { return this.Ok($"Hello, {name}, time is {DateTime.Now.ToLongTimeString()} and this is not cached"); } }
Nel nostro esempio, abbiamo specificato che tutte le action di CacheController dovranno usare la policy denominata shortCache e, se provassimo a eseguire il codice, vedremmo che effettivamente l'endpoint Cached si comporta come ci aspettiamo.
Nel caso in cui dovessimo disabilitare la cache per alcune action, possiamo impostare il parametro NoStore a true, come abbiamo fatto per NotCached.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
.NET Aspire per applicazioni distribuite
Utilizzare Azure AI Studio per testare i modelli AI
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Utilizzare i variable font nel CSS
Proteggere le risorse Azure con private link e private endpoints
Utilizzare DeepSeek R1 con Azure AI
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Generare un hash con SHA-3 in .NET
Eseguire i worklow di GitHub su runner potenziati
.NET Conference Italia 2024
Gestione degli eventi nei Web component HTML