2009-11-18 91 views
11

Esto está relacionado de alguna manera con otra pregunta que hice, pero me pregunto por qué no se la pregunto por separado.¿Cómo funciona Url.Action Asp.net MVC?

Si tuviera que colocar algo como lo siguiente en una vista

<td><img src='<%= Url.Action("DisplayImage" , "User" , new { id = item.id}) %>' alt="" /></td> 

¿Se supone que mostrar esto?

<td> 
    <img src='/User.mvc/DisplayImage?id=U00915441' alt="" /> 
</td> 

O sería el valor del atributo src-realidad ser sustituidos por los resultados de la UserController GetImage Acción?

Respuesta

9

Construirá el camino a la acción, devolviendo una url, no los resultados de ejecutar la acción.

Los resultados serán: código

<td> 
    <img src='/User.mvc/DisplayImage?id=U00915441' alt="" /> 
</td> 

Ejemplo. asume que su modelo de usuario tiene la imagen almacenada en una matriz de bytes. Si está utilizando LINQ y la propiedad es Binary, utilice el método ToArray() para convertirla en una matriz de bytes. Tenga en cuenta los atributos que requerirán que el usuario inicie sesión y utilice una solicitud GET.

[Authorize] 
[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult DisplayImage(string id) 
{ 
    var user = ...get user from database... 

    return File(user.Image, "image/jpeg"); 
} 

}

+0

Gracias. ¿Sabría cómo se supone que las imágenes se muestran con este método? Cada ejemplo que he visto para mostrar imágenes utiliza este método y no entiendo cómo funcionaría (ya que no funciona para mí). Soy nuevo en mvc, así que esto realmente ayudaría. – zSynopsis

+0

Necesitaría un método llamado DisplayImage (o GetImage, lo tiene en ambos sentidos, pero solo uno podría ser correcto) que toma la identificación del usuario como parámetro. Tendría que devolver un ContentResult con el tipo de mime apropiado para el formato de imagen, por ejemplo image/jpeg, image/gif, o image/png. Su acción recuperaría la imagen de la base de datos en una secuencia y construiría ContentResult a partir de esta secuencia, configurando el tipo de mimo. – tvanfosson

+0

Gracias tvan. ¿Hay algún ejemplo sobre cómo construir un ContentResult para una imagen almacenada en una matriz de bytes? – zSynopsis

Cuestiones relacionadas