访问验证器块错误消息
本文关键字:错误 消息 验证 访问 | 更新日期: 2023-09-27 18:24:48
public class Test
{
[RelativeDateTimeValidator(-10, DateTimeUnit.Year, 10, DateTimeUnit.Year, ErrorMessage = "Error")]
public DateTime ADate { get; set; }
public void ValidateMyProperty()
{
ADate = new DateTime(1900, 01, 01);
ValidationResults vrs = Validation.Validate<Test>(this);
foreach (var vr in vrs)
{
Print(vr.Message);
}
}
}
这显示
The value must fall within the range "-10"(Year) - "10(Year) relative to now
但是,如何播放/访问我指定的错误消息(错误消息 ="错误"(?
提前谢谢。
如果您想指定验证失败时他们收到的消息,我认为您正在寻找 MessageTemplate 属性。 它也允许可替换的令牌。
从文档 :
public class Person
{
[RelativeDateTimeValidator(-120, DateTimeUnit.Year, -18, DateTimeUnit.Year,
Ruleset="RuleSetA", MessageTemplate="Must be 18 years or older.")]
public DateTime DateOfBirth
{
get
{
return dateOfBirth;
}
}
}
消息模板令牌
如果消息模板包含令牌(例如,"{0}"(,那么验证程序将在创建 ValidationResult 时将这些令牌替换为值。下表列出了相对日期时间验证程序支持的令牌。
令 牌
意义
{0}
此令牌表示正在验证的对象的值。尽管将原始值显示为验证消息的一部分可能很有用,但您必须小心避免注入攻击,方法是转义可用于攻击向用户传达消息的系统的任何字符。
{1}
此令牌表示正在验证的对象的密钥。当验证程序附加到类型(如属性或字段(的成员时,键将设置为成员名称。当验证程序附加到对象时,密钥为 null,令牌将替换为空字符串。
{2}
此令牌表示在验证程序实例上指定的标签。如果未提供标记,则令牌将替换为空字符串。