如何从代码隐藏中获取媒体项的相对URL?

时间:2015-09-24 08:27:55

标签: kentico

我有一个布局网页部分,其中包含“Teaser”字段。 “Teaser”字段使用“媒体选择”表单控件。在这种情况下,该字段设置为上传到其中一个站点媒体库的图像。

我想渲染该图像,所以我试图在代码隐藏中获取它的相对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”变量为null,因此代码崩溃。

如何获取媒体文件的相对URL?

1 个答案:

答案 0 :(得分:2)

您无法添加"媒体选择"表单控件与字段类型Guid结合使用。然后,如果您只需要Guid,则需要创建自定义表单控件。

但更好的解决方案是添加一个数据类型为" text "并结合表格控制" 媒体选择"然后在从媒体库中选择图像时直接添加字段内的相对URL。

如果您还需要MediaInfo,那么您可以使用参数" mediaFilePath"来获取此对象,如下所述:https://devnet.kentico.com/docs/8_2/api/html/M_CMS_MediaLibrary_MediaFileInfoProvider_GetMediaFileInfo_3.htm

祝您好运,如果您有更多问题,可以随时在StackOverflow或http://devnet.kentico.com/questions-answers上询问。

如果这个答案对你有帮助,请投票给我答案: - )