gpt4 book ai didi

c# - 必需的数字参数在不包含在 JSON 中时默认为 0

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:32 26 4
gpt4 key购买 nike

我有一个模型,我在其中使用 DataAnnotations 来执行验证,例如

public class OrderDTO
{
[Required]
public int Id { get; set; }

[Required]
public Decimal Amount { get; set; }
}

然后我检查每个请求中的 ModelState 以确保 JSON 有效。

但是,我在数字属性方面遇到了麻烦,例如上面的 Amount。即使它设置为 [Required],如果它不包含在 JSON 中,它将跳过 ModelState 验证,因为它自动默认为 0 而不是 null,因此模型将看起来有效,即使它不是。

“修复”此问题的一种简单方法是将所有数字属性设置为可为空(int?Decimal?)。如果我这样做,默认为 0 不会发生,但我不喜欢将此作为最终解决方案,因为我需要更改我的模型。

如果属性不是 JSON 的一部分,是否可以将属性设置为 null

最佳答案

因为 Decimal是不可为 null 的类型,因此您不能这样做。您需要 Decimal? 来绑定(bind) null 值。

关于c# - 必需的数字参数在不包含在 JSON 中时默认为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34785993/

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