是否可以忽略属性的所有验证规则?

时间:2015-11-20 11:04:31

标签: rest asp.net-web-api asp.net-web-api2

我有一个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 时,才应用名称属性上的所有验证过滤器。

我有两种方法可以满足这一要求

  1. 删除名称上的所有验证过滤器,并在api控制器中应用自定义验证逻辑。它看起来很简单,但代码可重用是一个问题。

  2. 创建一个属性,例如 IgnoreIfFalse 以及一些如何让WebAPI忽略已配置的过滤器:[MaxLength(255)] + [MinLength(2)] ...,但我不是&# 39;不知道这种方法是否可行。

  3. IgnoreIfFailse属性可能有一个属性来保存要检查的属性(这里是CustomizationEnabled)。

    您如何看待这些方法?我非常感谢任何建议。 TKS

0 个答案:

没有答案