gpt4 book ai didi

c# - Web API 自定义验证以根据批准的值列表检查字符串

转载 作者:可可西里 更新时间:2023-11-01 08:34:16 25 4
gpt4 key购买 nike

我想验证 Web API REST 命令的输入。我希望它能像下面的 State 一样工作,并用限制参数有效值的属性进行装饰。

public class Item {
...

// I want State to only be one of "New", "Used", or "Unknown"
[Required]
[ValidValues({"New", "Used", "Unknown"})]
public string State { get; set; }

[Required]
public string Description { get; set; }

...
}

有没有一种方法可以在不违背 Web API 的原则的情况下做到这一点。理想情况下,该方法类似于 Ruby on Rails 的 custom validation .

最佳答案

创建一个派生自 ValidationAttribute 的自定义验证属性并覆盖 IsValid 成员函数。

public class ValidValuesAttribute: ValidationAttribute
{
string[] _args;

public ValidValuesAttribute(params string[] args)
{
_args = args;
}

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (_args.Contains((string)value))
return ValidationResult.Success;
return new ValidationResult("Invalid value.");
}
}

然后你可以做

[ValidValues("New", "Used", "Unknown")]

以上代码未经编译或测试。

关于c# - Web API 自定义验证以根据批准的值列表检查字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17243665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com