il metodo File della classe controller ritorna un FileResult. FileResult è un tipo di risultato che deriva dalla classe Base ActionResult (quindi è un tipo di ritorno delle action); non ritorna necessariamente un file fisicamente esistente, basta che il flusso http contenga i bytes e il mimetype giusto. In .NET gli array di byte che costituiscono i flussi meglio gestirli con gli stream (FileStream o MemoryStream, ecc.).
Per risolvere devi avere una action che dato un input (es. l'id dell'immagine da prelevare dal db) restituisca un risultato di tipo fileResult.
nella proprieta src del tag img devi richiamare questa action.
codice:
public ActionResult ImmagineFromDB(int id)
{
//array di bytes, meglio se un memorystream
var bytes = PrelevaImgDalDB(id);
//il response http è lo identico a quello che otterresti se la richiesta fosse fatta ad un jpeg fisicamente esistente sul server.
return File(bytes, "image/jpeg");
}
codice:
[img]@Url.Action([/img]