【发布时间】:2019-10-15 18:38:06
【问题描述】:
我使用asp net core 3.0,但遇到问题:
型号:
public class Location
{
public string Name { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
}
控制器中的方法
[HttpPost("api/somePost")]
public Task Test([FromBody] Location location)
{
// Do somethimg
return Task.CompletedTask;
}
启动:
services.AddMvc().AddNewtonsoftJson(options =>
{
options.SerializerSettings.Error = (sender, args) =>
{
args.ErrorContext.Handled = true;
};
});
我用 Postman 发送 json
并在控制器方法中的位置参数中获取 null!
和
如何忽略类型转换的错误并在“经度”属性中获取默认值(0)?
【问题讨论】:
-
如果
location在HttpPost中是null,则您的JSON 可能有问题。你如何发布它?您是否使用了正确的荣誉 ({})?您不能期望string被序列化为double,请参阅Longitude。 -
您可以尝试使用邮递员调用您的 web api,然后更新问题吗?添加您的邮递员请求和收到的错误。
-
json不需要用
{}括起来吗? -
所有数据都合理时位置不为空吗?
-
OP 对此代码或请求没有问题,他只是想以某种方式处理模型状态验证,如果出现反序列化错误,它将使用默认值处理。
标签: c# asp.net-core asp.net-core-3.0