ASP.NET Core WEB API:具有条件的必需参数

Fel*_*eza 4 c# asp.net-core

我的财产需要7,30或60.

[Required]
public int FrequenciaConsulta { get; set; }
Run Code Online (Sandbox Code Playgroud)

有没有像'[Required]'那样检查值?

Geo*_*ker 8

创建自定义验证属性.

public class RequiredNumberAttribute : ValidationAttribute, IClientModelValidator
{
    private int[] allowedNumbers;

    public RequiredNumberAttribute(params int[] numbers)
    {
         allowedNumbers = numbers;
    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        int number = (int)value;

        if (allowedNumbers.Contains(number))
        {
            return ValidationResult.Success;
        }

        return new ValidationResult($"Error: Number must be {string.Join(",", allowedNumbers)}");
    }
Run Code Online (Sandbox Code Playgroud)

用法是:

[RequiredNumber(7,30,60)]
public int FrequenciaConsulta { get; set; }
Run Code Online (Sandbox Code Playgroud)