我有一个布局网页部分,其中包含“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?
答案 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上询问。
如果这个答案对你有帮助,请投票给我答案: - )