2017-02-17 55 views
0

我在當前的文檔類型中選擇了媒體選擇器。在那我已經採取了兩個媒體選擇器。第一個用於多個圖像滑塊,另一個用於視頻。如何從Umbraco中的媒體選擇器獲取視頻網址

enter image description here

和內容

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

要解決這樣的問題,我會建議您嘗試打印的視頻媒體選擇屏幕的原始值或在調試模式下檢查它。我喜歡和更強類型IPublishedContent工作,所以我會用一些這樣的代碼調試:

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

通常情況下,如果你是在一個觀點,即從@inherits UmbracoTemplatePage繼承工作,既Model.ContentCurrentPage會給你當前頁面上的數據。如果您喜歡使用動態模型,則可以使用CurrentPage,或者您可以使用Model.Content來使用更強類型的IPublishedContent模型。我更喜歡強類型版本,因爲它對我來說更容易調試。

一旦你確認你收到了一個id後,我會檢查你在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

相關問題