【发布时间】:2016-12-13 17:20:06
【问题描述】:
hyperlink.NavigateUrl = Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(item));
当我试图点击链接时,它说找不到资源。因为它试图从网络数据库中获取项目。如何从主数据库中获取项目?
【问题讨论】:
标签: sitecore
hyperlink.NavigateUrl = Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(item));
当我试图点击链接时,它说找不到资源。因为它试图从网络数据库中获取项目。如何从主数据库中获取项目?
【问题讨论】:
标签: sitecore
你不能通过代码来做到这一点。请参考Sitecore fundamentals
您应该发布项目。 或者切换您的网站以使用主数据库而不是网络:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<sites>
<site name="website">
<patch:attribute name="database">master</patch:attribute>
</site>
</sites>
</sitecore>
</configuration>
【讨论】:
将此添加到行尾:?sc_database=master
现在应该是这样的:
hyperlink.NavigateUrl = Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(item)) + "?sc_database=master";
【讨论】:
虽然我完全同意@Anton 的回答,但要回答您的具体问题:
我如何从主数据库中获取项目
你可以这样做:
var masterDB = Sitecore.Configuration.Factory.GetDatabase("master");
var itemFromMaster = masterDB.GetItem(item.ID);
【讨论】: