Подтвердить что ты не робот

Отображение изображения из медиа-библиотеки в Umbraco 7

Это должно быть что-то неловко просто, но я не могу заставить его работать: я просто хотел бы отобразить изображение, которое было загружено в медиатеку Umbraco (Umbraco 7.1.1) в шаблоне Partial View. Код

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{   
    var imgNode = CurrentPage.BannerBackgroundImage;
    var imgUrl = umbraco.library.NiceUrl(imgNode);
    <div id="banner-wrapper" style="background: url('@imgUrl') center center no-repeat;">
        <!-- some irrelevant content -->
    </div>
}

где BannerBackgroundImage является настраиваемым свойством страницы. Однако, когда это отображается, @imgUrl заменяется на #.

Другие альтернативы, которые я пробовал, - это несколько изображений медиа-подборщика, как отображать изображение медиа-подборщика, получить изображение с носителя с помощью Razor и отобразить изображение из Media Picker, чтобы назвать лишь несколько.

Я был бы очень признателен, если бы кто-нибудь мог помочь мне с тем, что, по моему мнению, является новобрачным вопросом!

4b9b3361

Ответ 1

Я нашел этот способ простым и чистым:

@if (CurrentPage.Image != null && !(CurrentPage.Image is Umbraco.Core.Dynamics.DynamicNull))
{
    var m = Umbraco.Media(CurrentPage.Image);

    <img src="@m.Url" alt="@m.UrlName" />
}

Я надеюсь, что это поможет кому-то еще

Ответ 2

Спасибо Иисусу Моголлону,

Я рухнул, чтобы:

<img src="@Umbraco.Media(CurrentPage.headerBackgroundImage).Url" alt="">

Я установил файл в обязательном порядке, поэтому, надеюсь, мне не понадобится часть инструкции if.

Ответ 3

Это работало для меня, из документов Umbraco 6 Media, здесь

var bannerImage = Umbraco.TypedMedia(Model.Content.GetPropertyValue("plainImage"));

<div class="my-banner-wrapper" style="background-image: url(@bannerImage.GetPropertyValue("umbracoFile"));">
    <!-- some irrelevant content -->
</div>

Ответ 4

Попробуйте это

@if (CurrentPage.Image != null && !(CurrentPage.Image is Umbraco.Core.Dynamics.DynamicNull))
{
    var m = Umbraco.Media((int)CurrentPage.Image);

    <img src="@m.Url" alt="@m.UrlName" />
}

Примечание: вы должны использовать CurrentPage.Image как int из-за двумерного конструктора Umbraco.Media

Ответ 5

У вас было такое неожиданно трудное время для чего-то, что я бы подумал, было бы легко, это отрезало работу для меня.

@if (Model.Content.HasValue("OtherImages"))
{
   var otherImages = Model.Content.GetPropertyValue<List<IPublishedContent>>("OtherImages");
   foreach (var image in otherImages)
   {
      if (image != null)
      {
         <img src="@image.Url" alt="@image.Name" class="img-responsive img-rounded"  />
      }
   }
}

Большая часть других сообщений для меня не работала, но я думаю, что API немного изменился. Я использую Umbraco 7.6.1. Я не уверен, нужна ли нулевая проверка, но это, безусловно, не повредит.

Ответ 6

 <img src="@Umbraco.Media(Convert.ToString(@Umbraco.Field("image"))).umbracoFile" alt="" />

Ответ 7

Внутри шаблона

umbraco: Macro runat = "server" language = "cshtml"

img src="@Model.MediaById(Model.photo).umbracoFile" alt=""/

/Umbraco: Макрос

--- Model.photo = фото - имя alice

Ответ 8

Я ввел это в раздел выше doctype в используемом шаблоне или ведущем.

@{
Layout = null;
var regionalPage = Umbraco.Content(this.CurrentPage.Id);
string manangerPhotoUrl = string.Format("https://assets.yourdomain.com{0}", @Umbraco.Media(regionalPage.managerPhoto).Url);
}

Затем я добавил переменную, содержащую значение строки, в атрибут источника изображения в разметке.

<img class="img-responsive" src="@manangerPhotoUrl" />