Sitecore:从master数据库中获取媒体项

时间:2016-12-13 17:20:06

标签: sitecore

hyperlink.NavigateUrl = Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(item));

当我尝试点击链接时,它表示未找到资源。因为它试图从Web数据库中获取该项目。如何从master数据库中获取项目?

3 个答案:

答案 0 :(得分:1)

您无法通过代码执行此操作。请参阅Sitecore fundamentals

您应该发布项目。 或者将您的网站切换为使用master数据库而不是web:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <sites>
      <site name="website">
        <patch:attribute name="database">master</patch:attribute>
      </site>
    </sites>
  </sitecore>
</configuration>

答案 1 :(得分:1)

将此添加到该行的末尾:?sc_database = master

现在应该是这样的:

hyperlink.NavigateUrl = Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(item)) + "?sc_database=master";

答案 2 :(得分:0)

虽然我完全赞同@Anton's的回答,但回答你的具体问题:

  

我如何从主数据库中获取项目

在这里,您将如何做到这一点:

var masterDB = Sitecore.Configuration.Factory.GetDatabase("master");

var itemFromMaster = masterDB.GetItem(item.ID);