如何在代码中验证项目?

时间:2011-11-24 19:35:54

标签: sitecore sitecore6

我为item:created事件创建了一个事件处理程序,以便从项目名称中删除空格,但是将它们留在显示名称中可以正常工作,但我遇到的问题是如果我创建了两个相同的项目name我想触发一些验证,以便在内容编辑器中用户可以在快速操作栏中看到验证结果。

在创建我自己的活动之前,sitecore用于在快速操作栏中显示损坏的链接图标,但现在却没有。如何从代码中调用验证?

1 个答案:

答案 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