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
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Utilizzare Container Queries nominali
Cancellare una run di un workflow di GitHub
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Rendere le variabili read-only in una pipeline di Azure DevOps
Utilizzare Azure Cosmos DB con i vettori
Gestire gli accessi con Token su Azure Container Registry
Creare una libreria CSS universale: Immagini
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Configurare lo startup di applicazioni server e client con .NET Aspire
Eliminare una project wiki di Azure DevOps
I più letti di oggi
- Tornano i nostri eventi dal vivo: .NET Conference Italia il 27 ottobre nella Microsoft House https://aspit.co/bie di @dbochicchio #netfx
- Utilizzare le Intersection Observer API per eseguire un callback quando un oggetto diventa visibile
- Uso avanzato delle form con AngularJS
- Salvare dati sul client con Web Storage