У нас есть несколько изображений в нашей базе данных, и мы хотим отобразить их в поле зрения.Я нахожу двусторонний для этого - первый : мы создаем метод действия в контроллере, который получает изображение из базы данных и возвращает FileContentResult:
public ActionResult GetImage( int id )
{
var imageData = ...get bytes from database...
return File( imageData, "image/jpg" );
}
код вview:
<img src='<%= Url.Action( "GetImage", "image", new { id = ViewData["imageID"] } ) %>' />
Второй способ - использовать HttpHandler:
public void ProcessRequest(HttpContext Context)
{
byte [] b = your image...;
Context.Response.ContentType = "image/jpeg";
Context.Response.BinaryWrite(b);
}
и код в представлении:
<img src="AlbumArt.ashx?imageId=1" />
ПервыйВопрос в том, что является наиболее эффективным (работает быстрее) способом реализации этой функциональности (и почему он работает быстрее)?
И второй вопрос - существует ли способ непосредственного отображения изображения в нашем представлении, когда мы впервые вызываемметод действия, чтобы вернуть это представление?Я имею в виду, что в методе действия мы получаем список изображений из базы данных и передаем их в виде списка, и используем этот код:
<%=Html.Image(Model[i])%>
, этот код должен отображать изображение непосредственно из модели.