我为item:created
事件创建了一个事件处理程序,以便从项目名称中删除空格,但是将它们留在显示名称中可以正常工作,但我遇到的问题是如果我创建了两个相同的项目name我想触发一些验证,以便在内容编辑器中用户可以在快速操作栏中看到验证结果。
在创建我自己的活动之前,sitecore用于在快速操作栏中显示损坏的链接图标,但现在却没有。如何从代码中调用验证?
答案 0 :(得分:2)
您应该能够使用ValidatorManager
对象在代码中调用验证器(或验证器)。如果传入表示验证器的项目和您要验证的项目,则应该能够执行验证器。
var validatorItem = Sitecore.Data.Database.GetDatabase("master").GetItem("/sitecore/system/Settings/Validation Rules/Item Rules/Item/Duplicate Name");
var validator = ValidatorManager.BuildValidator(validatorItem, Sitecore.Context.Item);
validator.Validate(new ValidatorOptions(false));
if(!validator.IsValid)
{
Response.Write("Error level: " + validator.Result.ToString() + "<br />");
Response.Write("Error Message: " + validator.Name + "<br />");
}
else
{
Response.Write("All ok !");
}
此示例显示了一个验证器,但管理器也支持验证器集合,只需稍微挖掘一下对象:)
如果您要创建自己的验证器,可以查看here for a tutorial,确保继承自StandardValidator
希望更好的答案:P