RestApi中放置请求的空值

时间:2019-02-07 19:18:01

标签: rest api .net-core http-put

我正在用.NET Core编码Rest API。我有问题。我使用邮递员进行测试。 例如;我的变量:姓名,姓氏,年龄。

{
  "ID": 1
  "name": "Ayhan",
  "surname":"Hara"
}

我正在使用Put请求。

id=1, name=Ayhan, surname=Hara, age=null

但是我不发送“年龄”。因此,它为年龄保存了空值。

像;

[HttpPut("{id}")]
public ActionResult Update(int id, [FromBody]JsonPutDocument<Customer_UserDTO> customer_UserDTO)
{
    if (!ModelState.IsValid)
        return BadRequest("İstenilen Datalar Düzgün Değil");

    var user = unitOfWork.customer_User.GetById(id);
    if (user == null)
        return NotFound("İlgili müşteri bulunamadı");

    var userToPut = mapper.Map<Customer_UserDTO>(user);
    customer_UserDTO.ApplyTo(userToPut, ModelState);
    mapper.Map(userToPut, user);
    unitOfWork.SaveChanges();
    return Ok(mapper.Map<Customer_User>(user));
}

如何检查空变量?如果未输入年龄值,请不要更改。

{{1}}

1 个答案:

答案 0 :(得分:0)

您可能想看看[Patch]。具体来说,此博客将为您提供帮助: https:// dotnetcoretutorials .com / 2017/11/29 / json-patch-asp-net-core /

您唯一真正可行的选择是根据自己的条件手动映射属性。

或者,对于以下位置的Automapper员工来说可能是个问题: https://github.com/AutoMapper/ AutoMapper