自定义模型绑定器,用于将null输入值映射为null,用于可为空的值类型

时间:2014-05-30 06:27:39

标签: c# asp.net model-binding nullable

在我的网络服务中,我有几个输入模型可以采用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类型,如果他们觉得空值可能有意义。

0 个答案:

没有答案