如何从 Umbraco 中的媒体选择器获取视频 url
How to get Video url from media picker in Umbraco
我当前的文档类型中有媒体选择器。在那我有两个媒体选择器。第一个用于多图像滑块,另一个用于视频。
和内容
现在我试图通过给定的代码在我的代码中得到这个url:
var imageList = CurrentPage.productsSliderImages.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var video = Umbraco.Media(CurrentPage.productSliderVideo);
I am getting ImageList successfully. But I am getting video null.
If I replace my video with any Image again its start working. Is there any problem with Video or other file with media picker?
要解决这样的问题,我建议尝试将视频媒体选择器的原始值打印到屏幕或在调试模式下检查它。我喜欢使用更强类型的 IPublishedContent,因此我会使用如下代码进行调试:
var videoData = Model.Content.GetPropertyValue<string>("productSliderVideo");
通常,如果您正在处理从 @inherits UmbracoTemplatePage
继承的视图,Model.Content
和 CurrentPage
都会为您提供当前页面上的数据。如果您喜欢使用动态,您可以使用 CurrentPage
,或者您可以使用 Model.Content
来使用更强类型的 IPublishedContent 模型。我更喜欢强类型版本,因为它更容易调试。
一旦您确认您正在取回 ID,我将检查您在后台选择的媒体项目,就像进行健全性检查一样。确保它匹配。如果是这样,我会尝试在检查索引管理器中重新索引 InternalIndexer。据我了解,Umbraco 使用内部检查索引器作为媒体缓存。完成所有这些之后,我会尝试以下操作。它与您在上面所做的相同,但使用 TypedMedia 而不是动态媒体。也许它会向你揭示更多。我个人发现键入的内容和键入的媒体更容易调试。为了调试而切换到那个可能是有意义的,即使你决定之后要切换回动态:
var video = Umbraco.TypedMedia(videoData);
我当前的文档类型中有媒体选择器。在那我有两个媒体选择器。第一个用于多图像滑块,另一个用于视频。
和内容
现在我试图通过给定的代码在我的代码中得到这个url:
var imageList = CurrentPage.productsSliderImages.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var video = Umbraco.Media(CurrentPage.productSliderVideo);
I am getting ImageList successfully. But I am getting video null. If I replace my video with any Image again its start working. Is there any problem with Video or other file with media picker?
要解决这样的问题,我建议尝试将视频媒体选择器的原始值打印到屏幕或在调试模式下检查它。我喜欢使用更强类型的 IPublishedContent,因此我会使用如下代码进行调试:
var videoData = Model.Content.GetPropertyValue<string>("productSliderVideo");
通常,如果您正在处理从 @inherits UmbracoTemplatePage
继承的视图,Model.Content
和 CurrentPage
都会为您提供当前页面上的数据。如果您喜欢使用动态,您可以使用 CurrentPage
,或者您可以使用 Model.Content
来使用更强类型的 IPublishedContent 模型。我更喜欢强类型版本,因为它更容易调试。
一旦您确认您正在取回 ID,我将检查您在后台选择的媒体项目,就像进行健全性检查一样。确保它匹配。如果是这样,我会尝试在检查索引管理器中重新索引 InternalIndexer。据我了解,Umbraco 使用内部检查索引器作为媒体缓存。完成所有这些之后,我会尝试以下操作。它与您在上面所做的相同,但使用 TypedMedia 而不是动态媒体。也许它会向你揭示更多。我个人发现键入的内容和键入的媒体更容易调试。为了调试而切换到那个可能是有意义的,即使你决定之后要切换回动态:
var video = Umbraco.TypedMedia(videoData);