将值 {null} 转换为类型"System.Int32"400 错误时出错



我试图做POST请求与一些数据是空的。它是角状的。这是我的有效载荷

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

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

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;

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

如果'sideId'可以为空,这意味着它是一个可选参数。在javascript中,可选参数和未定义变量都以"未定义"类型结束,所以问题给出者的代码中发生了一些事情。在创建DeviceDetail对象的时候处理这个问题会很好:所以在你的类的构造函数中,你可以为这个模型设置一个默认值,避免这些"自己生成的nullpointerexception"。

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

相关内容

  • 没有找到相关文章

最新更新