【问题标题】:Error converting value {null} to type 'System.Int32' 400 error将值 {null} 转换为类型“System.Int32”时出错 400 错误
【发布时间】:2021-11-20 03:05:45
【问题描述】:

我正在尝试使用一些数据为空的 POST 请求。它是角形。 这是我的有效载荷

DeviceDetail{
deviceId:'332',
sideId: null,
deviceName:'test'
}

但是我在提交时收到了 400 个错误请求。 这是来自响应预览错误。 0:“将值 {null} 转换为类型'System.Int32'时出错。路径'sideId'

【问题讨论】:

  • 那是因为您必须尝试在 backEnd 中使用 sideId,请检查您的后端。

标签: javascript json angular typescript null


【解决方案1】:

我认为 Tartarus 的答案是正确的,但如果你不介意,我会更进一步:在我看来,像这种内联方法处理这个 nullcheck - 就在发送请求之前 - 并不是很优雅。

如果 'sideId' 可以以某种方式为空,这意味着它是一个可选参数。在 javascript 中,可选参数和未定义变量以“未定义”类型结束,因此问题提供者的代码中发生了一些事情。最好在创建 DeviceDetail 对象时处理这个问题:所以在你的类的构造函数中,你可以为这个模型设置一个默认值,避免这些“自生成的 NullPointerExceptions”。

还需要检查后端的验证。怎么可能,验证不处理所需的输入数据?

【讨论】:

    【解决方案2】:

    C#:

    public class DeviceDetail {
       public string DeviceId;
       public int SideId; -> This will NOT allow null value
       public int? SideId; -> This will allow null value
       public string DeviceName;
    }
    

    因此,在您的情况下,您必须将 null 值强制为 0。例如:

    角度:

    const sideId = sideId ? sideId : 0;
    

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 2020-10-03
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多