【问题标题】:Can't post data with postman无法使用邮递员发布数据
【发布时间】:2021-01-17 13:56:17
【问题描述】:

我创建了一个简单的 Web API 项目,我正在尝试使用 PostMan 软件POST数据,但有些东西不起作用...

我的 web api 控制器名称ValuesController

我的数据是这样的:

public class Data
{
    [Key]
    public int ID { get; set; }
    public string Value { get; set; }
}

这是我的 Post 方法:

public void Post([FromBody]string value)
{
    db.Datas.Add(new Data { Value = value });
    db.SaveChanges();
}

这是在 PostMan 中:

当我点击发送按钮然后进入visual studio时,Post方法的value参数为null:

如果我继续,邮递员会很顺利地完成他的工作,没有任何错误,然后 在我的表中添加了空值:

可能有什么问题?

编辑:

当我修改我的 Post 方法时:

public IHttpActionResult Post([FromBody]string value)
{
    if (!ModelState.IsValid)
        return BadRequest("Bad request");

    db.Datas.Add(new Data { Value = value });
    db.SaveChanges();

    return Ok();
}

我在邮递员中收到“错误请求”消息

【问题讨论】:

  • 投反对票的原因是什么?
  • 我不得不承认,在邮递员中,当我点击发送按钮时,我编辑的数据没有显示出来。我猜我的 ID 列也应该有我的数据...

标签: asp.net-web-api postman


【解决方案1】:

将您的方法参数从 string 更改为 Data,如下所示

public void Post(Data value)
{
    db.Datas.Add(new Data { Value = value });
    db.SaveChanges();
}

这会起作用。

【讨论】:

    【解决方案2】:

    您正在尝试从正文中发布 Json 数据 {"value":"value"},但您的方法只需要 formbody 中的字符串,只需将“value”作为简单字符串而不是 json 对象传入正文

    【讨论】:

      【解决方案3】:

      [HttpPost]

          public async Task<ActionResult<PaymentDetail>> PostPaymentDetail(PaymentDetail paymentDetail)
          {
              _context.paymentDetails.Add(paymentDetail);
              await _context.SaveChangesAsync();
      
              return CreatedAtAction("GetPaymentDetail", new { id = paymentDetail.PaymentDetailId }, paymentDetail);
          }
      

      【讨论】:

      • post 数据何时通过 postmen 数据以 null 格式插入
      猜你喜欢
      • 2019-10-23
      • 2021-07-31
      • 2019-05-06
      • 1970-01-01
      • 2021-07-13
      • 2022-01-14
      • 2019-10-01
      • 2015-06-08
      • 2020-12-31
      相关资源
      最近更新 更多