我有一个名为MyFIlesController的API控制器。
在其中,我有这个方法:
// POST api/myfiles
public void Post([FromBody]string value)
{
}
这就是我用Fiddler称呼的方式:
POST
URL: `http://localhost:58075/api/myfiles`
-------------------------
Request Header:
User-Agent: Fiddler
Host: localhost:58075
Content-Type: application/json
Content-length: 18
-------------
Request body:
{"value": "asjkfsf"}
调用该方法,但value为null。我做错了什么?
答案 0 :(得分:7)
创建一个与您的JSON对应的类:
public class Test
{
public string value{get; set;}
public int ID {get; set;}
}
然后改变你的Api-action:
// POST api/myfiles
public void Post([FromBody]Test value)
{
}
如果您不想这样做,只需更改POST正文:
"somevalue"
编辑:为POST-payload添加了ID。 现在你的JSON应该是这样的:
{"value": "someval",
"ID": 1}
答案 1 :(得分:1)
根据MVC文件http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1,其中显示与您相同的案例
转到发送简单类型部分。
发送简单值时,您需要
使用 FromBody 属性
客户端需要使用以下格式发送值:
<强> =值强>
具体而言,对于简单类型,名称/值对的名称部分必须为空。
无论如何,为了进一步增强,你最好使用复杂类型(一个对象)来接受参数。
答案 2 :(得分:1)
您需要更改:
Request body:
{"value": "asjkfsf"}
要:
Request body:
"asjkfsf"
它适用于具有json格式的简单类型