如何从媒体url检索Sitecore媒体项目?

如何从媒体url检索Sitecore媒体项目?,sitecore,sitecore-media-library,Sitecore,Sitecore Media Library,如何从我们拥有的URL检索Sitecore媒体项 URL是动态URL,例如/~/media/14bded00e4dd64dfd8f74019aed4d74eb.ashx 这是在富文本字段中添加项时生成的 您可以使用以下代码: DynamicLink dynamicLink; if (!DynamicLink.TryParse("/~/media/14BDED00E4D64DFD8F74019AED4D74EB.ashx", out dynamicLink)) return; MediaI

如何从我们拥有的URL检索Sitecore媒体项

URL是动态URL,例如
/~/media/14bded00e4dd64dfd8f74019aed4d74eb.ashx


这是在富文本字段中添加项时生成的

您可以使用以下代码:

DynamicLink dynamicLink;
if (!DynamicLink.TryParse("/~/media/14BDED00E4D64DFD8F74019AED4D74EB.ashx", out dynamicLink))
    return;
MediaItem mediaItem = Sitecore.Context.Database.GetItem(dynamicLink.ItemId, dynamicLink.Language ?? Sitecore.Context.Language);

在富格文本字段中添加项目时,可以使用FieldRenderer呈现输出-Sitecore随后将自动创建正确的URL。这样你就不用担心URL了

FieldRenderer控件可以这样使用:

<sc:FieldRenderer ID="renderer" runat="server" FieldName="fieldname" />

虽然这是真的,但能够直接获取媒体项仍然有价值。解析管道组件中的富格文本字段可以确保所有链接的媒体项也被发布。这是一个公平的观点,尽管我认为我会使用链接数据库实现这样的功能,但拥有实际的媒体项肯定是有价值的。
<sc:text field="fieldname" />
FieldRenderer.Render(Sitecore.Context.Item, fieldname);