hyperlink.NavigateUrl = Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(item));
当我尝试点击链接时,它表示未找到资源。因为它试图从Web数据库中获取该项目。如何从master数据库中获取项目?
答案 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);