Web API 从 [ValidationAttribute] 获取原始值

Web API Get Raw Value from [ValidationAttribute]

嗨,我有这个自定义验证属性:

public sealed class TestValidation : ValidationAttribute
{
    public TestValidation ()
    {
    }
}

并像这样使用它:

public class Test 
{
    [TestValidation]
    public DateTime? DateUpdated { get; set;}
}

我有这样的 JSON 值:

{ "DateUpdated": "abcdefg" }

发生的事情是,由于 "abcdefg" 不是有效的 DateTime 格式,它会自动将其转换为 null,因为目标数据类型是 Nullable。是否可以在 TestValidation class?

上获取原始值 (abcdefg)

您需要覆盖 IsValid 方法。

这是您应该做的事情。

public sealed class TestValidation : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)  
    {
        //value contains the value of datetime 'DateUpdated' (abcdefg)
    }
}