在Sitecore中,使用上下文获取渲染.参数[“renderingId”]和GetItem
本文关键字:参数 renderingId GetItem Sitecore 获取 上下文 | 更新日期: 2023-09-27 17:59:52
我有多个渲染,我正在为每个渲染向自定义体验工具栏添加一个帮助按钮,该按钮将打开一个新窗口并跳转到帮助文件中的特定锚点。我希望锚点与渲染的名称相匹配,例如"容器"或"事件列表"。因此,我制作了一个自定义命令,并试图使用此方法获取渲染项,但由于某些原因,targetItem始终为null。我做错了什么?
public class Help : Command
{
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull(context, "context");
Assert.IsNotNull(context.Items, "context items are null");
Assert.IsTrue(context.Items.Length > 0, "context items length is 0");
StringBuilder data = new StringBuilder();
var renderId = context.Parameters["renderingId"];
if (Sitecore.Data.ID.IsID(renderId))
{
Sitecore.Data.Items.Item targetItem =
Sitecore.Context.Database.GetItem(renderId);
if (targetItem != null) //never gets the item for me to access it's properties
{
data.Append("Rendering Name: " + targetItem.ToString() + "'r'n");
data.Append("Rendering Display name: " + targetItem.Name + "'r'n");
}
}
}
}
是的,无论何时在任何sitecore管理网站上进行任何操作,您都会得到一个核心数据库作为内容数据库,因此为了使您的工作正常进行,您必须首先将数据库设置为master,然后您可以使用getItem方法来检索Item及其呈现。
编码快乐!!