gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 04:43:23 24 4
gpt4 key购买 nike

我只想放置与 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) 使用模型状态验证

最佳答案

您可以实现自己的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.IsNullOrWhiteSpace(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
}

这只是一个示例。它可能存在转换问题,我不确定这是解决此问题的最佳方法。

关于c# - 如何将条件必需属性放入类属性中以使用 WEB API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20642328/

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