.NET 核心后端,从 Postman 创建 Required nullable 的模型,无需发送必需的数据
.NET core backend, model with Required nullable being created from Postman without required data sent in
我有一个模型 属性:
[Required]
public DateTime? CreatedDate { get; set; }
这是必需的并且可以为空,这正是我想要的,试图避免空的或默认的日期设置,迫使 user/frontend 发送日期。
我的 Dto 没有注释并且 属性 不可为空:
public DateTime CreatedDate { get; set; }
控制器:
public async Task<IActionResult> Create([FromBody] InputDto input)
{
var creatInputId = await inputService.AddAsync(input);
return Ok(creatInputId );
}
服务使用 Automapper 将 Dto 映射到模型:
var input = _mapper.Map<InputModel>(inputDto);
当我从 Postman 测试这个控制器时,无论我是否提供 CreatedDate,数据库都会更新,从前端它不会。使用 Postman 时,数据库中的 CreatedDate 设置为 01-01-0001。
我是否也应该在我的 Dto 中使用数据注释?我想避免默认 date/prohibit 保存输入,除非给出非默认日期。
Dto
在模型之前被击中。由于它不是必需的或可为空的,因此它会填充默认值,这与 DateTime
.
的情况下的 01-01-0001
非常相似
您还需要将注释放在 Dto
中。
我有一个模型 属性:
[Required]
public DateTime? CreatedDate { get; set; }
这是必需的并且可以为空,这正是我想要的,试图避免空的或默认的日期设置,迫使 user/frontend 发送日期。
我的 Dto 没有注释并且 属性 不可为空:
public DateTime CreatedDate { get; set; }
控制器:
public async Task<IActionResult> Create([FromBody] InputDto input)
{
var creatInputId = await inputService.AddAsync(input);
return Ok(creatInputId );
}
服务使用 Automapper 将 Dto 映射到模型:
var input = _mapper.Map<InputModel>(inputDto);
当我从 Postman 测试这个控制器时,无论我是否提供 CreatedDate,数据库都会更新,从前端它不会。使用 Postman 时,数据库中的 CreatedDate 设置为 01-01-0001。
我是否也应该在我的 Dto 中使用数据注释?我想避免默认 date/prohibit 保存输入,除非给出非默认日期。
Dto
在模型之前被击中。由于它不是必需的或可为空的,因此它会填充默认值,这与 DateTime
.
01-01-0001
非常相似
您还需要将注释放在 Dto
中。