Не удается получить URL-адрес медиа-изображения от Umbraco после обновления

Я недавно обновился до 7.6.3, и у меня возникла проблема с получением URL-адресов мультимедийных изображений в моих представлениях. Для целей тестирования я добавил новый MediaPicker2 для одного из узлов, установил для него значение и попытался получить его значение в моем представлении бритвы:

var icon2 = Model.Content.GetProperty("icon2");

Затем объект выглядит следующим образом: введите здесь описание изображения

Выполнение Model.Content.GetPropertyValue("icon2") вызывает следующую ошибку:

Исключение типа «System.Exception» возникло в Umbraco.Core.dll, но не было обработано в пользовательском коде.

Дополнительная информация: Исключение при создании значения.

InnerException: ссылка на объект не указывает на экземпляр объекта.

Model.Content.GetPropertyValue<IPublishedContent>("icon2") выдает ту же ошибку.

Что я делаю неправильно?


person SsjCosty    schedule 01.08.2017    source источник
comment
В umbracoSettings.config для параметра EnablePropertyValueConverters установлено значение false или true?   -  person Eyescream    schedule 02.08.2017
comment
Установлено значение true.   -  person SsjCosty    schedule 02.08.2017
comment
С какой версии Umbraco вы обновились?   -  person harvzor    schedule 03.08.2017
comment
Я думаю, у вас есть какая-то dll, возможно, из плагина PropertyValueConverter или из-за неудачного обновления.   -  person Eyescream    schedule 03.08.2017


Ответы (1)


Согласно этому ответу, то, что вы делаете, правильно. Однако я не уверен, почему это не работает.

Однако я уже отвечал на подобный вопрос раньше и я нашел окольный способ получения узла для Udi:

Вы можете получить IPublishedContent из строки изображения, используя этот код:

// Your string.
var imageString = Model.Content.GetPropertyValue<string>("icon2");

// Get the guid from this string.
var imageGuidUdi = GuidUdi.Parse(imageString);

// Get the ID of the node!
var imageNodeId = ApplicationContext.Current.Services.EntityService.GetIdForKey(guidUdi.Guid, (UmbracoObjectTypes)Enum.Parse(typeof(UmbracoObjectTypes), guidUdi.EntityType, true));

// Finally, get the node.
var imageNode = Umbraco.TypedMedia(imageNodeId.Result);
person harvzor    schedule 03.08.2017