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
Creare gruppi di client per Event Grid MQTT
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Effettuare il binding di date in Blazor
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Miglioramenti agli screen reader e al contrasto in Angular
Evitare la script injection nelle GitHub Actions
Gestire i null nelle reactive form tipizzate di Angular
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Hosting di componenti WebAssembly in un'applicazione Blazor static
Utilizzare Model as a Service su Microsoft Azure
I più letti di oggi
- Impostare un elemento come ridimensionabile tramite CSS
- Proteggersi dagli attacchi di Open Redirect in ASP.NET Core MVC
- Personalizzare l'errore del rate limiting middleware in ASP.NET Core
- Accedere alla console di una Azure Container App
- Modificare i metadati nell'head dell'HTML di una Blazor Web App
- Gli oggetti CallOut di Expression Blend 4.0
- SQL Server 2005 December CTP
- Sfruttare le nuove tipologie di input di HTML5 con ASP.NET 4.0
- Upload da una pagina web con Dundas Upload