【问题标题】:How to get Video url from media picker in Umbraco如何从 Umbraco 的媒体选择器中获取视频 url
【发布时间】:2017-02-17 12:53:22
【问题描述】:

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

内容

现在我正在尝试通过给定的代码在我的代码中获取此网址:

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

我正在成功获取 ImageList。但我的视频为空。 如果我再次用任何图像替换我的视频,它就会开始工作。使用媒体选择器的视频或其他文件有问题吗?

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

【问题讨论】:

  • 您选择的视频的文件扩展名是什么?如果我在下面的回答没有帮助,那可能是一个有用的线索。您是否为视频制作了自定义媒体类型?如果是这样,您使用什么属性编辑器来存储您正在上传的视频?

标签: umbraco umbraco7


【解决方案1】:

要解决这样的问题,我建议尝试将视频媒体选择器的原始值打印到屏幕上或在调试模式下检查它。我喜欢使用更强类型的 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);

【讨论】:

  • 对不起,由于假期,我无法在周末进行测试。我测试了你的代码并且运行良好
  • 你能解释一下这个页面中的模型到底是什么吗?因为我没有在我的视图中调用任何模型
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多