如何将条件必需属性放入类属性以使用WEB API?

  发布于 2023-02-09 18:40

我只想放置与WEB API一起使用的条件必需属性

public sealed class EmployeeModel
{
      [Required]
      public int CategoryId{ get; set; }
      public string Email{ get; set; } // If CategoryId == 1 then it is required
}

我通过(ActionFilterAttribute)使用模型状态验证

1 个回答
  • 你可以实现自己的ValidationAttribute.也许是这样的:

    public class RequireWhenCategoryAttribute : ValidationAttribute
    {
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var employee = (EmployeeModel) validationContext.ObjectInstance;
            if (employee.CategoryId == 1)
            {
                return ValidationResult.Success;
            }
            var emailStr = value as String;
            return string.IsNullOrEmpty(emailStr) ? new ValidationResult("Value is required.") : ValidationResult.Success;
        }
    }
    
    public sealed class EmployeeModel
    {
        [Required]
        public int CategoryId { get; set; }
        [RequireWhenCategory]
        public string Email { get; set; } // If CategoryId == 1 then it is required
    }
    

    这只是一个样本.它可能有铸造问题,我不确定这是解决这个问题的最佳方法.

    2023-02-09 18:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有