如何从我的代码隐藏中获取媒体项目的亲戚 URL?
How do I get a relative URL to a media item from my codebehind?
我有一个布局 Web 部件,其中有一个 "Teaser" 字段。 "Teaser" 字段使用 "media selection" 表单控件。在这种情况下,该字段设置为上传到网站媒体库之一的图像。
我想渲染那个图像,所以我试图在代码隐藏中获取它的相对 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" 变量为空,因此代码崩溃。
如何获得我的媒体文件的亲戚 URL?
您不能将 "Media selection" 表单控件与字段类型 Guid 结合使用。然后,如果您只需要 Guid,则需要创建一个自定义表单控件。
但更好的解决方案是添加一个数据类型为“文本”的字段,并结合表单控件“媒体选择” " 然后在从媒体库中选择图像时直接在字段内添加相关 URL。
如果您还需要 MediaInfo,则可以使用参数 "mediaFilePath" 获取此对象,如下所述:https://devnet.kentico.com/docs/8_2/api/html/M_CMS_MediaLibrary_MediaFileInfoProvider_GetMediaFileInfo_3.htm
祝你好运,如果您有更多问题,可以随时在 Whosebug 或 http://devnet.kentico.com/questions-answers.
上提问
如果这个回答对你有帮助,请为我的回答投票:-)
我有一个布局 Web 部件,其中有一个 "Teaser" 字段。 "Teaser" 字段使用 "media selection" 表单控件。在这种情况下,该字段设置为上传到网站媒体库之一的图像。
我想渲染那个图像,所以我试图在代码隐藏中获取它的相对 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" 变量为空,因此代码崩溃。
如何获得我的媒体文件的亲戚 URL?
您不能将 "Media selection" 表单控件与字段类型 Guid 结合使用。然后,如果您只需要 Guid,则需要创建一个自定义表单控件。
但更好的解决方案是添加一个数据类型为“文本”的字段,并结合表单控件“媒体选择” " 然后在从媒体库中选择图像时直接在字段内添加相关 URL。
如果您还需要 MediaInfo,则可以使用参数 "mediaFilePath" 获取此对象,如下所述:https://devnet.kentico.com/docs/8_2/api/html/M_CMS_MediaLibrary_MediaFileInfoProvider_GetMediaFileInfo_3.htm
祝你好运,如果您有更多问题,可以随时在 Whosebug 或 http://devnet.kentico.com/questions-answers.
上提问如果这个回答对你有帮助,请为我的回答投票:-)