Como usted puede saber que tenemos un nuevo ActionResult llamada FileResult en la versión RC1 de ASP.NET MVC.304 de estado con FileResult en ASP.NET MVC RC1
Utilizando eso, sus métodos de acción pueden devolver la imagen al navegador de forma dinámica. Algo como esto:
public ActionResult DisplayPhoto(int id)
{
Photo photo = GetPhotoFromDatabase(id);
return File(photo.Content, photo.ContentType);
}
En el código HTML, podemos usar algo como esto:
<img src="http://mysite.com/controller/DisplayPhoto/657">
Dado que la imagen se devuelve de forma dinámica, necesitamos una manera de almacenar en caché la corriente vuelto de modo que don No es necesario volver a leer la imagen desde la base de datos. Creo que podemos hacerlo con algo como esto, no estoy seguro:
Response.StatusCode = 304;
Esto indica al navegador que ya tiene la imagen en la memoria caché. Simplemente no sé qué devolver en mi método de acción después de configurar StatusCode en 304. ¿Debo devolver null o algo así?
En la primera solicitud, que establezca la propiedad ETag como esto: HttpContext.Current.Response.Cache.SetETag (someUniqueValue); En solicitudes posteriores, al leer ETag sé que la imagen está en el caché del navegador y, por lo tanto, tengo que devolver 304 – Meysam
Usar EmptyResult, no FileResult al devolver 304. –