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
但是,如何显示/访问我指定的错误消息(ErrorMessage =“Error”)?
提前致谢。
答案 0 :(得分:1)
如果您想要指定验证失败时收到的消息,我认为您正在寻找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}
此标记表示正在验证的对象的键。当验证程序附加到属性(如属性或字段)的成员时,该键将设置为成员名称。当验证器附加到对象时,该键为空,并且该标记由空字符串替换。
{2}
此标记表示验证程序实例上指定的标记。如果未提供任何标记,则该标记将替换为空字符串。