Quando realizziamo una action in ASP.NET MVC, abbiamo a disposizione diversi tipi di oggetti, che derivano dalla classe ActionResult, che possiamo sfruttare per restituire al nostro chiamante varie tipologie di contenuti. Ad esempio, la classe FileContentResult può essere sfruttata per inviare dei dati binari. Se abbiamo salvato un'immagine all'interno di un campo di database, possiamo realizzare una action che la renderizzi tramite il codice seguente:
public FileContentResult GetImage(int Id) { // recupero l'immagine dal database using (var context = new SampleEntities()) { Image image = context.Images.Find(Id); if (image != null) { return new FileContentResult(image.Immagine, image.TipoImmagine); } else { return null; } } }
Il metodo in alto non fa altro che recuperare l'immagine memorizzata nel database tramite il suo identificativo e, nel caso non sia null, restituisce un FileContentResult. Il costruttore di quest'ultimo accetta una parametro di tipo byte e uno di tipo string, che verranno utilizzati rispettivamente per impostare il vero e proprio contenuto della response e il suo mime type.
Per sfruttare questa action all'interno di una view, basta invocarla come src di un tag img:
<img alt="" width="200" height="200" src="@Url.Action("GetImage", "Home", new { item.ID })" />
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Evitare la command injection in un workflow di GitHub
Evitare la script injection nelle GitHub Actions
Utilizzare database e servizi con gli add-on di Container App
Effettuare il binding di date in Blazor
Installare le Web App site extension tramite una pipeline di Azure DevOps
Disabilitare automaticamente un workflow di GitHub (parte 2)
Generare token per autenicarsi sulle API di GitHub
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Utilizzare la libreria Benchmark.NET per misurare le performance
Utilizzare gli snapshot con Azure File shares
I più letti di oggi
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Disabilitare automaticamente un workflow di GitHub (parte 2)
- Ottimizzazione dei block template in Angular 17
- Paginare i risultati con QuickGrid in Blazor
- Ed infine anche il calendario :)
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!