这篇文章可以帮助您在Sitecore中创建自定义字段验证器。这涉及在Sitecore中创建自定义验证程序类和验证程序规则/项。
要将任何类型的验证应用于任何Sitecore字段,需要在模板字段级别将验证规则应用于该字段。默认情况下,Sitecore提供了一些可以直接使用的验证规则。您可以在此项下找到默认验证规则 - /sitecore/system/Settings/Validation Rules/Field Rules
。
创建自定义字段验证程序的步骤
1.创建自定义验证器类
如果我们需要任何新规则,我们需要通过定义继承Sitecore类的类来创建自定义字段验证器,StandardValidator
如下所示。
using Sitecore.Data.Fields;
using Sitecore.Data.Validators;
using System;
using System.Runtime.Serialization;
namespace MySitecoreApp.Validators
{
[Serializable]
public class MyFieldValidator : StandardValidator
{
public MyFieldValidator() : base()
{
}
public MyFieldValidator(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
protected override ValidatorResult Evaluate()
{
Field field = this.GetField();
if(field.Value.Trim().ToLower() == "Hello")
{
this.Text = this.GetText("Improper value in the field \"{0}\".", field.DisplayName);
return this.GetFailedResult(ValidatorResult.CriticalError);
}
return ValidatorResult.Valid;
}
protected override ValidatorResult GetMaxValidatorResult()
{
return ValidatorResult.Error;
}
public override string Name
{
get { return "MyFieldValidator"; }
}
}
}
2.在Sitecore中创建字段验证器项。
在路径下创建验证器项/sitecore/system/Settings/Validation Rules/Field Rules
。提供自定义验证程序类名称以及我们创建的类的程序集。即,MySitecoreApp.Validators.MyFieldValidator,MySitecoreApp
如下所示。
3.将自定义字段验证程序应用于字段
- 转到要应用此验证程序的Sitecore模板字段。
- 在“数据”部分下,转到字段
Validation Bar
字段,然后选择我们创建的字段,如下所示。现在Title字段已添加验证。这将自动应用于使用此字段的所有项目,甚至是继承此模板的模板。
4.验证
现在转到使用该字段的项目并输入一些值,现在验证器方法(protected override ValidatorResult Evaluate()
)代码执行。在保存项目之前也会执行此验证。基于从Evaluate()
方法返回的ValidatorResult ,显示不同的消息。该ValidatorResult
可以是任何以下结果..
- 有效
- 建议
- 警告
- 错误
- CriticalError(出现警告,但仍允许我们保存)
- FatalError(防止使用致命错误消息保存项目)