【问题标题】:Web API Get Raw Value from [ValidationAttribute]Web API 从 [ValidationAttribute] 获取原始值
【发布时间】:2016-12-12 12:00:42
【问题描述】:

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

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)?

【问题讨论】:

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


【解决方案1】:

您需要重写 IsValid 方法。

这是你应该做的事情。

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

【讨论】:

    猜你喜欢
    • 2012-10-24
    • 2017-07-09
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2012-05-28
    相关资源
    最近更新 更多