我正在学习sitecore规则并阅读Rule Engine Cook Book上的资料。我只想在Item save上显示一个消息窗口。这就是我到目前为止所做的:
Rule
下添加了/sitecore/system/Settings/Rules/Item Saved/Rules
。规则1:
项目模板为Address entry
的位置
运行Show Hello World
脚本
Show Hello World
/sitecore/system/Settings/Rules/Item Saved/Actions/
醇>
在脚本中有3个字段,我需要填写,因为食谱说,Enter a value in the Type field, or a value in the Code, References, and Language fields. Do not enter values in all four fields.
因此我在字段中填写了以下数据:
代码: Sitecore.Context.ClientPage.ClientResponse.Alert("More than one address not allowed under this item!");
参考文献:我不知道该写些什么。
语言:CSharp
我不知道我在这里做错了什么。任何帮助都会非常感激!
答案 0 :(得分:2)
我刚刚成功重新创建了您的脚本并在新的Sitecore实例上进行了测试。以下是您必须遵循的步骤:
在/sitecore/templates/System/Rules/Script
下添加模板类型/sitecore/system/Settings/Rules/Definitions/Elements/Script
的新项目。我把我的项目称为“mydemoscript”。如果您运行的是早期版本的Sitecore(我认为7.2或更早版本),那么您的保存路径将是/sitecore/system/Settings/Rules/Item Saved/Actions
在脚本的Code
字段中添加以下内容:&lt;%Sitecore.Context.ClientPage.ClientResponse.Alert(“此项目下不允许多个地址!”);%&gt; < / p>
在脚本的Type
字段中添加“CSharp”
保存您的脚本项目。
在/sitecore/system/Settings/Rules/Item Saved/Rules
创建规则下,我将我的名字命名为“mydemo”
在Rule
字段中使用与之前相同的条件。对于操作,请使用“运行特定脚本”操作。请务必编辑操作以引用您在步骤1-4中创建的脚本。
测试!
答案 1 :(得分:1)
我认为我在code
项目中没有看到Actions
字段。
执行某些操作代码的最简单方法是使用值为Type
的字段:
My.Assembly.Namespace.MyCustomAction,My.Assembly
然后MyCustomAction
类代码:
using Sitecore.Data;
using Sitecore.Rules.Actions;
namespace My.Assembly.Namespace
{
public class MyCustomAction<T> : RuleAction<T> where T : ConditionalRenderingsRuleContext
{
public override void Apply(T ruleContext)
{
// your code here
}
}
}