如何将空字符串传递给可为空的 int
How to pass empty string to nullable int
我有这个属性
public int? CodigoBanco { get; set; }
当我尝试以这种方式将它发送到服务器时
codigoBanco: ""
我有以下错误
The following errors were detected during validation:\r\n - The JSON
value could not be converted to System.Nullable`1[System.Int32]
我不知道你这样做的目的是什么,但简单的方法就是转换:
CodigoBanco =Convert.ToInt32(codigoBanco==""?null:codigoBanco)
将 returns 0 转换成你的整数? 属性
正如@Ralf 所建议的,我从 json 中删除了所有带有空字符串的属性。这解决了我的问题:
function removeEmptyOrNull(obj){
Object.keys(obj).forEach(k =>
(obj[k] && typeof obj[k] === 'object') && removeEmptyOrNull(obj[k]) ||
(!obj[k] && obj[k] !== undefined) && delete obj[k]
);
return obj;
};
您有两种解决问题的方法:
指定null
(非空串)即可映射成功。 codigoBanco: null
或从 client-side 中完全删除此 属性(默认值与 null
相同)
在 backend-side 处写入自定义转换,例如:
CodigoBanco = int.Parse(codigoBanco == "" || codigoBanco.Length = 0 ? null : codigoBanco);
我有这个属性
public int? CodigoBanco { get; set; }
当我尝试以这种方式将它发送到服务器时
codigoBanco: ""
我有以下错误
The following errors were detected during validation:\r\n - The JSON value could not be converted to System.Nullable`1[System.Int32]
我不知道你这样做的目的是什么,但简单的方法就是转换:
CodigoBanco =Convert.ToInt32(codigoBanco==""?null:codigoBanco)
将 returns 0 转换成你的整数? 属性
正如@Ralf 所建议的,我从 json 中删除了所有带有空字符串的属性。这解决了我的问题:
function removeEmptyOrNull(obj){
Object.keys(obj).forEach(k =>
(obj[k] && typeof obj[k] === 'object') && removeEmptyOrNull(obj[k]) ||
(!obj[k] && obj[k] !== undefined) && delete obj[k]
);
return obj;
};
您有两种解决问题的方法:
指定
null
(非空串)即可映射成功。codigoBanco: null
或从 client-side 中完全删除此 属性(默认值与null
相同)在 backend-side 处写入自定义转换,例如:
CodigoBanco = int.Parse(codigoBanco == "" || codigoBanco.Length = 0 ? null : codigoBanco);