Чтобы решить проблему, как это, я бы рекомендовал пытаться напечатать необработанное значение видеоносителей Picker на экран или проверки его в режиме отладки. Мне нравится работать с более сильно типизированных IPublishedContent, поэтому я хотел бы отладить с некоторым кодом, как это:
var videoData = Model.Content.GetPropertyValue<string>("productSliderVideo");
Обычно, если вы работаете над видом, который наследуется от @inherits UmbracoTemplatePage
, как Model.Content
и CurrentPage
даст вам данные на текущей странице. Вы можете работать с CurrentPage
, если вам нравится работать с динамикой, или вы можете работать с Model.Content
для работы с более строго типизированными моделями IPublishedContent. Я предпочитаю строго типизированную версию, потому что мне намного легче отлаживать.
Как только вы подтвердите, что получаете идентификатор обратно, я бы проверил элемент мультимедиа, который вы выбрали в backoffice, точно так же, как проверка работоспособности. Убедитесь, что он соответствует. Если это так, я попробую переиндексировать InternalIndexer в диспетчере индексирования. Насколько я понимаю, Umbraco использует внутренний индексный указатель как медиа-кеш. Сделав все это, я попробую сделать следующее. Это то же самое, что вы делаете выше, но с TypedMedia вместо динамического носителя. Возможно, это откроет вам больше. Я лично считаю, что типизированный контент и типизированные медиа намного легче отлаживать. Возможно, имеет смысл переключиться на это ради отладки, даже если вы решите, что хотите вернуться к динамике после этого:
var video = Umbraco.TypedMedia(videoData);
Какое расширение файла для видео, которое вы выбираете? Если мой ответ ниже бесполезен, это может быть полезной подсказкой. Вы создали пользовательский тип носителя для видео? Если да, то какой редактор свойств вы используете для хранения видео, которое вы загружаете? – bowserm