2015-09-24 25 views
0

我有一個有「Teaser」字段的佈局Web部件。 「Teaser」字段使用「媒體選擇」表單控件。在這種情況下,該字段被設置爲上傳到網站媒體庫之一的圖像。如何從我的代碼隱藏中獲取媒體項目的相對URL?

我想呈現的形象,所以我試圖讓相對URL給它的代碼隱藏:

if (Teaser != Guid.Empty) // Teaser is {8d7fa1ab-b304-474f-9ab9-2e17e8fee84f} 
{ 
    var mediaInfo = MediaFileInfoProvider.GetMediaFileInfo(Teaser, SiteContext.CurrentSiteName); 
    // mediaInfo is null so the next line crashes 
    var libraryInfo = MediaLibraryInfoProvider.GetMediaLibraryInfo(mediaInfo.FileLibraryID); 
    string url = MediaFileURLProvider.GetMediaFileUrl(mediaInfo, SiteContext.CurrentSiteName, libraryInfo.LibraryFolder); 

的「的MediaInfo」 variabe是空的,所以代碼崩潰。

如何獲取我的媒體文件的相對URL?

回答

2

您不能將「媒體選擇」表單控件與字段類型Guid結合使用。然後,如果您只需要Guid,則需要創建自定義窗體控件。

但是,一個較好的解決方案是增加一個字段與數據類型「文本」,並在與所述形式控制「媒體選擇」,那麼組合選擇從媒體的圖像時添加字段內直接相對URL圖書館。

如果您還需要的MediaInfo那麼你可以用參數「mediaFilePath」這個對象,就像這裏描述:https://devnet.kentico.com/docs/8_2/api/html/M_CMS_MediaLibrary_MediaFileInfoProvider_GetMediaFileInfo_3.htm

祝你好運,如果您有更多的問題,你總是可以在這裏問他們在計算器上或上http://devnet.kentico.com/questions-answers

如果這個答案幫助你,請投我的回答:-)

+0

感謝@maartenvdh,這個問題竟然是,我是切換領域上之間的「文本=>媒體選擇」頁類型和「文件=>直接上傳」。我想我必須切換類型,但不保存我正在查看的頁面或類似的內容 - 所以它在該字段中仍然有一個文件GUID。將它切換爲「text =>媒體選擇」可以直接在我所需的字段中輸入網址。 – George

相關問題