UMBRACO: Как добавить изображение в шаблон

Итак, в настоящее время я новичок в Umbraco и слежу за некоторыми обучающими видео на umbraco.tv. Я создал свой шаблон и в настоящее время использую его для настройки домашней страницы моего веб-сайта. У меня все интерфейс работает и отображается правильно.

Моя проблема в изображениях. Я использую много изображений для своего веб-сайта и пытаюсь связать его с контентом, чтобы изображения можно было легко изменить (не уверен, что понимаю).

Изображение панели навигации

Если вы нажмете на ссылку выше, моя текущая панель навигации будет выглядеть так. Я хочу иметь возможность изменить ЛОГОТИП с помощью средства выбора мультимедиа Umbraco. Однако каждый раз, когда я это делаю, это либо дает мне альтернативное имя, либо ошибку времени выполнения.

Это код изображения в шаблоне.

<img src="@Umbraco.Field("navigationLogo")" height="100" width="50" alt="Logo">

Я был бы признателен, если бы вы могли мне помочь. Я не уверен, что правильно объяснил, поэтому не стесняйтесь спрашивать подробно. Спасибо!

Редактировать -----

Я пишу код только в браузере, так как он не позволяет мне войти в систему, чтобы получить коды локально (только в пробной версии, так как я просто проверяю, хорошая ли это CMS).

Не уверен, что делаю это правильно, поэтому прошу прощения. Я написал свой код так

@{
   var navigationLogo = @Umbraco.AssignedContent.Site().GetPropertyValue("navigationLogo");
   var navigationLogoMediaItem = @Umbraco.TypedMedia(navigationLogo);

   <img src="@navigationLogoMediaItem.Url" height="100" width="50" alt="Logo" />
 }

Это дает мне следующую ошибку до сих пор.

Сообщение об ошибке компилятора: CS1061: «Umbraco.Web.UmbracoHelper» не содержит определения для «AssignedContent», и не удалось найти метод расширения «AssignedContent», принимающий первый аргумент типа «Umbraco.Web.UmbracoHelper» (вы пропустили используя директиву или ссылку на сборку?


person Bonaliza Garcia    schedule 14.11.2017    source источник
comment
Вы забыли код   -  person Eyescream    schedule 14.11.2017
comment
@Eyescream добавил код для изображения   -  person Bonaliza Garcia    schedule 14.11.2017
comment
Какую ошибку вы получаете?   -  person Mario Lopez    schedule 15.11.2017


Ответы (3)


@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
    Layout = "WebBase.cshtml";
    string navigationLogoMediaItem = "";
    if (Model.Content.HasValue("navigationLogo"))
    {
     navigationLogoMediaItem = Model.Content.GetPropertyValue<IPublishedContent>("navigationLogo").Url;

    }
}

<img src="@navigationLogoMediaItem" height="100" width="50" alt="Logo" />

ты можешь попробовать это

Ответить

person Bhagirath Pancholi    schedule 16.11.2017

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

Предположение 1) На вашем домашнем узле (при условии, что тип документа «дом») у вас есть свойство, называемое «navigationLogo». Предположение 2) Это тип данных средства выбора мультимедиа Предположение 3) Вы используете Umbraco 7.6 или новее. Предположение 4) Вы не используете конструктор моделей

Итак, предположения на месте, есть несколько шагов, которые вам нужно пройти.

1) Получите логотип навигации, где бы вы ни находились на сайте.

var navigationLogo = @Umbraco.AssignedContent.Site().GetPropertyValue("navigationLogo");

2) затем вам нужно будет получить элемент мультимедиа, поскольку я полагаю, что на этом этапе у вас будет только UDI.

var navigationLogoMediaItem = @Umbraco.TypedMedia(navigationLogo);

3) На этом этапе вы захотите поставить нулевую галочку, но чтобы получить URL-адрес логотипа, вам просто нужно сделать это:

<img src="@navigationLogoMediaItem.Url" height="100" width="50" alt="Logo" />

Это должно дать вам то, что вам нужно. :-)

person Pheonyx    schedule 14.11.2017
comment
Если вы предполагаете Umbraco 7.6, вы используете преобразователи основных значений, поэтому @Umbraco.AssignedContent.Site().GetPropertyValue(navigationLogo); возвращает IPublishedContent: .GetPropertyValue‹IPublishedContent›(navigationLogo) - person Mario Lopez; 15.11.2017
comment
Я пробовал то, что вы сказали @Phoenyx, но я не уверен, правильно ли я это сделал. я отредактировал свой пост выше - person Bonaliza Garcia; 15.11.2017
comment
Какую ошибку вы получаете? Попробуйте с @navigationLogo.Url - person Mario Lopez; 15.11.2017
comment
Я пробовал @navigationLogo.Url, но все равно выдавал ошибку - person Bonaliza Garcia; 15.11.2017
comment
@BonalizaGarcia извините, в моем коде была ошибка, должно быть @Umbraco.AssignedContentItem, а не @Umbraco.AssignedContent. - person Pheonyx; 15.11.2017

Вы можете просто попробовать этот код.

memberImage – это имя поля типа вашего документа

@{
    var image = Umbraco.TypedMedia(@Umbraco.Field("memberImage").ToString());
    <img src="@image.Url" style="max-width:250px">
}
person Nazir Ahmad Sz Noori    schedule 03.08.2018