Web API 2-数据注释验证 - 请求中没有重复项

时间:2015-11-17 10:23:54

标签: asp.net-web-api

我正在使用WEB API 2。 在我的请求中,我将请求作为Collection of Mytype传递

MyType has following properties:

Id(int),
PaymentId(int).

我需要以下验证。请求的每个Id都应该是唯一的。

我是否需要编写自定义验证,或者是否存在内置的DataAnnotationValidation?

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法是编写继承IValidatableObject的模型类或为整个模型编写自定义验证属性。 Web API将在自定义验证逻辑上验证您的模型。

public class MyModel : IValidatableObject
{
    public IEnumerable<MyType> MyTypes { get; set;}

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        foreach(var myType in this.MyTypes)
        {
            // do validation logic
            if (error)
            {
                yield return new ValidationResult("All Ids must be unique!")
            }
        }
    }
}