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
Utilizzare il trigger SQL con le Azure Function
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Effettuare il binding di date in Blazor
Limitare le richieste lato server con l'interactive routing di Blazor 8
Utilizzare un service principal per accedere a Azure Container Registry
Definire stili a livello di libreria in Angular
Routing statico e PreRendering in una Blazor Web App
Gestire il colore CSS con HWB
Testare l'invio dei messaggi con Event Hubs Data Explorer
Simulare Azure Cosmos DB in locale con Docker
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
I più letti di oggi
- Simulare Azure Cosmos DB in locale con Docker
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2024 - Milano
- .NET Conference Italia 2023 - Milano e Online