如何从Umbraco的媒体选择器获取视频网址

时间:2017-02-17 12:53:22

标签: umbraco umbraco7

我在当前的文档类型中有媒体选择器。在那,我采取了两个媒体选择器。首先是多个图像滑块,另一个是视频。

enter image description here

和内容

enter image description here

现在我试图通过给定的代码在我的代码中获取此URL:

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

我成功获得ImageList。但是我的视频无效。   如果我再次使用任何Image替换我的视频,它就会开始工作。视频或带有媒体选择器的其他文件有问题吗?

观看:
http://prntscr.com/e9wal1

1 个答案:

答案 0 :(得分:2)

要解决此类问题,我建议您尝试将视频媒体选择器的原始值打印到屏幕或在调试模式下检查它。我喜欢使用更强类型的IPublishedContent,所以我会用这样的代码进行调试:

var videoData = Model.Content.GetPropertyValue<string>("productSliderVideo");

通常情况下,如果您正在使用继承自@inherits UmbracoTemplatePage的视图,则Model.ContentCurrentPage都会为您提供当前页面上的数据。如果您喜欢使用动态,则可以使用CurrentPage,或者可以使用Model.Content处理更强类型的IPublishedContent模型。我更喜欢强类型版本,因为我更容易调试。

一旦您确认自己正在获取ID,我会检查您在后台选择的媒体项目,就像进行健全性检查一样。确保它匹配。如果是这样,我会尝试在检查索引管理器中重新索引InternalIndexer。据我所知,Umbraco使用内部检查索引器作为媒体缓存。完成所有这些后,我会尝试下面的内容。它与您在上面所做的相同,但使用TypedMedia而不是动态媒体。也许它会向你揭示更多。我个人觉得键入的内容和键入的媒体更容易调试。即使您决定之后切换回动态,切换到调试也是有意义的:

var video = Umbraco.TypedMedia(videoData);