2017-02-17 8 views
0

У меня есть сборщик медиа в моем текущем типе документа. В этом я взял два сборщика средств массовой информации. сначала для слайдера с несколькими изображениями, а другой для видео.Как получить видеоролик из сборщика медиа в Umbraco

enter image description here

И Content

enter image description here

Теперь я пытаюсь получить этот адрес в моем коде данного кода:

var imageList = CurrentPage.productsSliderImages.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); 
var video = Umbraco.Media(CurrentPage.productSliderVideo); 

Я успешно получать ImageList. Но я получаю видео нуль. Если я снова заменю свое видео на любое изображение, его начало будет работать. Есть ли проблема с видео или другим файлом со средством выбора медиа?

Часы:
http://prntscr.com/e9wal1

+0

Какое расширение файла для видео, которое вы выбираете? Если мой ответ ниже бесполезен, это может быть полезной подсказкой. Вы создали пользовательский тип носителя для видео? Если да, то какой редактор свойств вы используете для хранения видео, которое вы загружаете? – bowserm

ответ

2

Чтобы решить проблему, как это, я бы рекомендовал пытаться напечатать необработанное значение видеоносителей 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); 
+0

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

+0

Можете ли вы объяснить мне, что такое «Модель» на этой странице? как я не назвал ни одной модели в моем представлении –

+1

@UbiquitousDevelopers https://our.umbraco.org/forum/developers/razor/42006-CurrentPage-vs-ModelContent – Mark

Смежные вопросы