Asp.net web api Web API 2-数据批注验证请求中没有重复项

Asp.net web api Web API 2-数据批注验证请求中没有重复项,asp.net-web-api,Asp.net Web Api,我正在使用WebAPI2。 在我的请求中,我将请求作为Mytype的集合传递 MyType has following properties: Id(int), PaymentId(int). 我需要以下验证。请求的每个Id都应该是唯一的 我是否需要编写自定义验证,或者是否存在用于此目的的内置DataAnnotationValidation?我唯一能想到的方法是编写继承IValidatableObject的模型类,或者为整个模型编写自定义验证属性。Web API将在自定义验证逻辑上验证您的模

我正在使用WebAPI2。 在我的请求中,我将请求作为Mytype的集合传递

MyType has following properties:

Id(int),
PaymentId(int).
我需要以下验证。请求的每个Id都应该是唯一的


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

我唯一能想到的方法是编写继承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!")
            }
        }
    }
}
公共类MyModel:IValidatableObject
{
公共IEnumerable MyTypes{get;set;}
公共IEnumerable验证(ValidationContext ValidationContext)
{
foreach(此.MyTypes中的var myType)
{
//执行验证逻辑
如果(错误)
{
返回新的ValidationResult(“所有ID必须唯一!”)
}
}
}
}