我创建了一个简单的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值:
可能有什么问题?
修改
当我修改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();
}
邮递员收到“错误请求”消息
答案 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);
}