无法用邮递员发布数据

时间:2018-05-14 19:26:10

标签: asp.net-web-api postman

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

我的网页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:

如果我继续,邮递员完成他的工作,没有任何错误然后 在我的表中添加了null值: Postman

可能有什么问题?

修改

当我修改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();
}

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

3 个答案:

答案 0 :(得分:0)

将您的方法参数从字符串更改为数据,如下所示

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

这将有效。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

[HttpPost]

    public async Task<ActionResult<PaymentDetail>> PostPaymentDetail(PaymentDetail paymentDetail)
    {
        _context.paymentDetails.Add(paymentDetail);
        await _context.SaveChangesAsync();

        return CreatedAtAction("GetPaymentDetail", new { id = paymentDetail.PaymentDetailId }, paymentDetail);
    }