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
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Semplificare il deployment di siti statici con Azure Static Web App
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Short-circuiting della Pipeline in ASP.NET Core
Creare un webhook in Azure DevOps
Miglioramenti agli screen reader e al contrasto in Angular
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Load test di ASP.NET Core con k6
Utilizzare gli snapshot con Azure File shares
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Code scanning e advanced security con Azure DevOps