можем ли мы визуализировать изображение sitecore mvc, используя itemID

В моем представлении MVC я могу получить Image ItemID, теперь хочу отобразить его, я делаю это как:

   // Getting ImageItemID
   ID myImageItemId = new ID(image.Substring(image.IndexOf('{', 0), 38));
   // Getting ImageItem according myImageItemId 
   Item myImageItem = db.GetItem(myImageItemId);
   @Html.Raw(myImageItem)
   <img src="@myImageItem"/>

пожалуйста, кто-нибудь может помочь, какую ошибку я здесь делаю


person Amit Sharma    schedule 24.12.2014    source источник
comment
Почему бы просто не отображать URL-адрес изображения в поле src, используя Sitecore.Resources.Media.MediaManager.GetMediaUrl(myImageItem)?   -  person jammykam    schedule 24.12.2014
comment
Я согласен с Jammykam. Мне кажется, что это самый простой способ отобразить изображение, если вам не нужен редактор страниц.   -  person Varun Nehra    schedule 25.12.2014


Ответы (1)


Вам нужно специальное действие, которое вернет содержимое фактического изображения по его идентификатору:

public ActionResult Image(int imageID)
{
    byte[] image = SomeService.GetImageBytes(imageID);

    return File(image, "image/jpeg");
}

После этого вы можете использовать это действие в своем представлении:

<img src="@Url.Action("Image", "SomeController", new {imageID = myImageItem})"/>
person Vsevolod Goloviznin    schedule 24.12.2014
comment
на самом деле это частичное представление, которое рендерится на Ajax Call, так что это не какая-либо модель и контроллер, это просто для получения результата от sitecore и их рендеринга - person Amit Sharma; 24.12.2014
comment
Вы должны создать отдельное действие (вы также можете создать отдельный контроллер для этого), которое будет возвращать изображение - person Vsevolod Goloviznin; 24.12.2014
comment
вы имеете в виду, что здесь мне нужно создать отдельный контроллер для этого - person Amit Sharma; 24.12.2014
comment
Вам нужно делать то, что вам больше подходит, вы можете создать отдельный контроллер или использовать существующий контроллер и добавить туда это действие. - person Vsevolod Goloviznin; 24.12.2014
comment
что вы имеете в виду под SomeService в методе контроллера ActionResult - person Amit Sharma; 24.12.2014
comment
Это сервис, который возвращает изображение по его идентификатору. - person Vsevolod Goloviznin; 24.12.2014