我试图做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"。
也有必要检查后端验证。验证怎么可能不处理所需的输入数据?