【问题标题】:How to retrieve Sitecore media items from media url?如何从媒体 url 检索 Sitecore 媒体项目?
【发布时间】:2013-06-26 07:58:17
【问题描述】:

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

网址是动态网址,例如/~/media/14BDED00E4D64DFD8F74019AED4D74EB.ashx。

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

【问题讨论】:

    标签: sitecore sitecore-media-library


    【解决方案1】:

    您可以使用以下代码:

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

    【讨论】:

      【解决方案2】:

      在富文本字段中添加项目时,您可以使用 FieldRenderer 呈现输出 - Sitecore 将自动创建正确的 URL。这样您甚至不必担心 URL。

      FieldRenderer 控件可以这样使用:

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

      或者,如果您使用的是 XSLT:

      <sc:text field="fieldname" />
      

      在代码隐藏中你可以做类似的事情

      FieldRenderer.Render(Sitecore.Context.Item, fieldname);
      

      【讨论】:

      • 虽然这是真的,但能够直接获取媒体项目仍然有价值。解析管道组件中的富文本字段可用于确保所有链接的媒体项目也被发布。
      • 这是一个公平的观点,虽然我认为我会使用链接数据库来实现诸如此类的功能 - 但拥有实际的媒体项目肯定是有价值的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多