我正在尝试禁用默认值?webapi的特性。目前我在api控制器中有一个post方法,以类作为输入:
[HttpPost]
public IActionResult MyMethod(MyClass class)
public class MyClass
{
public bool FirstProp {get;set;}
public decimal SecondProp {get;set;}
}
包含bool和decimal必需值。当我发送这个值为null的json时,我的api表现良好,它会抛出一个异常,即值对指定列无效。
问题是,当我不发送此列(例如json:{ }
(,并且我使用默认值(在我的情况下,对于FirstProp类型为false,对于SecondProp类型则为0(进入控制器方法类时。对于我的post-method控制器,阻止这种序列化/映射的最佳方式是什么?
问题是当我不发送此列时(例如json:
{ }
(
如果不传递任何属性,一种更简单的方法是使字段required
:
public class MyClass
{
[JsonProperty(Required = Required.Always)]
public bool FirstProp { get; set; }
[JsonProperty(Required = Required.Always)]
public decimal SecondProp { get; set; }
}
对于asp.net核心3.x,您需要安装Microsoft.AspNetCore.Mvc.NewtonsoftJson
并添加NewtonsoftJson支持,如下所示:
services.AddControllers().AddNewtonsoftJson();
参考:
https://stackoverflow.com/a/58443810/11398810