我想向sitecore页面编辑器功能区添加一个按钮,并希望它作为链接工作。
例如,当我单击此按钮时,页面应重定向到HOMEURL / sample.aspx。

我写了一个类,它继承自Command。

public class addlink : Command
{
    public override void Execute(CommandContext context)
    {
        Sitecore.Web.WebUtil.Redirect("/sample.aspx");
    }
}

然后,对于核心数据库中的此webedit功能区元素,我将点击事件设置为webedit:addlink。浏览器上此链接的onclick事件是javascript:return scForm.invoke('webedit:addlink',event)。

因此,重定向不会发生。如何添加指向页面编辑器功能区的链接?我将对改善我的类的任何建议或其他方法表示欢迎。

谢谢

最佳答案

您需要在Sitecore配置中注册命令。可以在MyCommands.config中使用内容创建自己的App_Config/Include文件:

<configuration>
  <command name="webedit:addlink" type="My.Assembly.Namespace,My.Assembly"/>
</configuration>

或使用命令定义更新现有文件之一。

编辑您的评论:

您的代码不起作用的原因是,您试图重定向单击按钮时请求的POST调用的响应。您需要做的是注册一个javascript,它将在 Sitecore的响应再次出现后重定向父窗口,就像TwentyGotoTen在下面的帖子中所写的那样。

public override void Execute(CommandContext context)
{
    Sitecore.Web.UI.Sheer.SheerResponse
        .Eval("window.top.location.href='http://google.com';");
}

09-15 13:34
查看更多