Web API从[ValidationAttribute]获取原始值

时间:2016-12-12 12:00:43

标签: c# asp.net-web-api json.net data-annotations model-binding

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

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

并像这样使用它:

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

我有这样的JSON值:

{ "DateUpdated": "abcdefg" }

由于“abcdefg”不是有效的DateTime格式,它会自动将其转换为null,因为目标数据类型为Nullable。是否可以在TestValidation类上获取原始值(abcdefg)?

1 个答案:

答案 0 :(得分:2)

您需要覆盖IsValid方法。

这是你应该做的事情。

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