.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 中。