2016-12-13 7 views
0
hyperlink.NavigateUrl = Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(item)); 

リンクをクリックしようとしているときに、リソースが見つかりません。 Webデータベースからアイテムを取得しようとしているためです。マスターデータベースからアイテムを取得するにはどうすればよいですか?Sitecore:マスターデータベースからメディアアイテムを取得

答えて

1

コードで行うことはできません。参照してください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> 
0

私はあなたの特定の質問に答えるために、アントンの答え@に完全に同意しながら:私は、マスター・データベースからアイテムを取得する方法

は、ここではそれを行うだろう方法は次のとおりです。

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

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

は、OPが考慮すべきであれば、彼*べきです* 。これが公開されているWebサイトのコードで、サイトがCDサーバーに展開されている場合、CDサーバーのベストプラクティスは "master"の接続文字列を削除することです。これが行われた場合、これらの回答は両方とも失敗します。 – sh1rts

0

は、行の最後にこれを追加します。sc_database =マスター

それが今のようになります?あなたは* *それを行うことができますが

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

関連する問題