Sitecore 如何验证代码中的项目?

Sitecore 如何验证代码中的项目?,sitecore,sitecore6,Sitecore,Sitecore6,我为项:created事件创建了一个事件处理程序,以从项名称中删除空格,但将空格保留在显示名称中,这很好,但我遇到的问题是,如果我创建了两个同名项,我希望触发一些验证,以便在内容编辑器中用户可以在快速动作条 在创建我自己的事件之前,sitecore曾在快速操作栏中显示断开的链接图标,但现在没有。如何从代码中调用验证 您应该能够使用ValidatorManager对象在代码中调用验证器。如果您传入一个表示验证器的项和一个您试图验证的项,那么您应该能够执行验证器 var validatorItem

我为
项:created
事件创建了一个事件处理程序,以从项名称中删除空格,但将空格保留在显示名称中,这很好,但我遇到的问题是,如果我创建了两个同名项,我希望触发一些验证,以便在内容编辑器中用户可以在快速动作条


在创建我自己的事件之前,sitecore曾在快速操作栏中显示断开的链接图标,但现在没有。如何从代码中调用验证

您应该能够使用
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 !");
}
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(新的validator选项(false));
如果(!validator.IsValid)
{
Write(“错误级别:+validator.Result.ToString()+”
); 响应。写入(“错误消息:“+validator.Name+”
); } 其他的 { 回答。写下(“一切正常!”); }
这个例子显示了一个单一的验证器,但是管理器也支持验证器集合,只需仔细研究一下对象:)

如果您正在创建自己的验证器,您可以查看并确保继承自
StandardValidator


希望有一个更好的答案:p

经过编辑以实际回答以下问题:)