Web Api HTTPPost不接受int [英] Web Api HTTPPost not accepting int

查看:89
本文介绍了Web Api HTTPPost不接受int的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试传递正文一个 int ,它不起作用
为什么我需要创建一个具有int类型的属性的类吗? (然后它就起作用了)



工作

  [HttpPost] 
[Route( api / UpdateMainReversed)]
public IHttpActionResult UpdateMainVerified(DataAccess.Entities.RequestMain mainValues)
{....}

不工作

  [HttpPost] 
[Route( api / UpdateMainReversed)]
public IHttpActionResult UpdateMainVerified(int mainId)
{....}

用邮递员进行测试





2.you应该使用下面的[FromBody]

  [HttpPost] 
public void UpdateMainVerified([FromBody] int mainid)
{

}

此链接可以很好地说明



https://docs.microsoft.com/zh-CN/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in- aspnet-web-api


I am trying to just pass in body a int and it does not work Why do I need to create a class with a property of type int ? (then it works)

WORKS

[HttpPost]
[Route("api/UpdateMainReversed")]
public IHttpActionResult UpdateMainVerified(DataAccess.Entities.RequestMain mainValues)
    {  ....}

DO NOT WORK

[HttpPost]
[Route("api/UpdateMainReversed")]
public IHttpActionResult UpdateMainVerified(int mainId)
    {  ....}

Testing with Postman

http://localhost:13497/api/UpdateMainReversed

Body

{
   "mainId" : 1615
}

解决方案

1.Your [HttpPost] expects a int but from body you are passing a json object. you should pass json string like below. No need to mention parameter name

2.you should use [FromBody] as below

[HttpPost]
    public void UpdateMainVerified([FromBody] int mainid)
    {

    }

this link explains it well

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

这篇关于Web Api HTTPPost不接受int的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆