我有一个WebAPI验证问题。让我解释一下这个场景:
这是模型
public class AccountViewModel
{
public bool CustomizationEnabled { get; set; }
[Required]
[EmailAddress]
public string Email { get; set; }
[MaxLength(255)]
[MinLength(2)]
public string Name { get; set; }
// other properties
}
仅当 CustomizationEnabled = True 时,才应用名称属性上的所有验证过滤器。
我有两种方法可以满足这一要求
删除名称上的所有验证过滤器,并在api控制器中应用自定义验证逻辑。它看起来很简单,但代码可重用是一个问题。
创建一个属性,例如 IgnoreIfFalse 以及一些如何让WebAPI忽略已配置的过滤器:[MaxLength(255)] + [MinLength(2)] ...,但我不是&# 39;不知道这种方法是否可行。
IgnoreIfFailse属性可能有一个属性来保存要检查的属性(这里是CustomizationEnabled)。
您如何看待这些方法?我非常感谢任何建议。 TKS