在我的网络服务中,我有几个输入模型可以采用Nullable<TValue>
类型,如int?
和bool?
。
如果我为具有属性{ myNullabool: null }
的输入模型发送JSON bool? MyNullabool
,则默认模型绑定器将null
映射到false
而不是null
。
通常,它似乎将空输入映射到default(TValue)
而不是null
。
我在大多数情况下通过检查某个属性是否等于默认值来处理此问题,但当然bool?
这不可能是false
通常很有意义。我可以为bool
创建自己的引用类型,以便默认值为null
,但这看起来很愚蠢。
所以,我想知道如何进行以下操作:1)配置默认模型绑定器以将null
Nullable
映射到null
,或2)专门创建自定义模型绑定器仅处理Nullable
并推迟到所有其他类型的默认绑定器
出于好奇,微软是否有理由选择以违反直觉的方式实施默认模型绑定?似乎人们只会选择使用Nullable
类型,如果他们觉得空值可能有意义。