gpt4 book ai didi

c# - 具有相关属性的 asp.net Web API 中的模型验证

转载 作者:行者123 更新时间:2023-11-30 23:24:16 25 4
gpt4 key购买 nike

我正在使用模型验证来验证 Web API 请求:

ActionFilterAttribute

是否可以为依赖于属性“A”的模型属性“B”制定验证规则。考虑这个例子以获得更多说明

public class ValidationModel
{

[Required]
public int? Id { get; set; }

public string Barcode { get; set; }

public string BarcodeType { get; set; }
}

上述模型有一个必需的 Id 属性和可选的 Barcode、BarcodeType 属性,当且仅当 Barcode 属性中有任何值时(如果它不为 null 且一个空字符串)

最佳答案

在 MVC 中有一个用于自定义验证的内置机制,该机制会为实现 IValidatableObject 的已发布 ViewModel 自动触发。

例如:

public class ValidationModel : IValidatableObject {
// properties as defined above

public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) {
if (!string.IsNullOrWhiteSpace(Barcode) && string.IsNullOrWhiteSpace(BarcodeType)) {
yield new ValidationResult("BarcodeType is required if Barcode is given", new[] { "BarcodeType" });
}
}
}

您可以通过测试来检查 Controller 中验证是否成功ModelState.IsValid

关于c# - 具有相关属性的 asp.net Web API 中的模型验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37875936/

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