如何发布json请求
我正在尝试向我的web api发布json请求: json: 我的api控制器如下所示:如何发布json请求,json,asp.net-web-api,Json,Asp.net Web Api,我正在尝试向我的web api发布json请求: json: 我的api控制器如下所示: public class DataController : ApiController { // GET api/data public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; }
public class DataController : ApiController
{
// GET api/data
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/data/5
public string Get(int id)
{
return "value";
}
// POST api/data
public void Post([FromBody]string value)
{
}
// PUT api/data/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/data/5
public void Delete(int id)
{
}
}
公共类数据控制器:ApiController
{
//获取api/数据
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
//获取api/data/5
公共字符串Get(int-id)
{
返回“值”;
}
//发布api/数据
公共作废帖子([FromBody]字符串值)
{
}
//把api/data/5放进去
公共void Put(int id,[FromBody]字符串值)
{
}
//删除api/data/5
公共无效删除(int-id)
{
}
}
我试图点击post方法,但字符串值为空?我正在使用fiddler发布请求。您正在发布一个JSON数组,但该方法需要一个字符串。模型绑定器不知道如何处理此问题,因此您将得到一个空值 有几种方法可以解决这个问题 一种是通过将JSON包装在引号中(必要时在字符串中转义引号)来传递JavaScript字符串。该方法现在将接收一个字符串,模型绑定器将能够将其绑定到字符串参数 第二个选项是,如果您使用的是Web API 2,其中模型绑定器使用的是Json.NET,那么您可以将参数更改为JObject类型,并传入原始Json。Json.NET将解析Json并将其放入
JObject
中。您可以使用此JObject
,也可以通过调用.ToString()
将其转换回JSON
第三个选项是创建一个类来表示输入,并将参数更改为强类型对象
public class DataController : ApiController
{
// GET api/data
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/data/5
public string Get(int id)
{
return "value";
}
// POST api/data
public void Post([FromBody]string value)
{
}
// PUT api/data/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/data/5
public void Delete(int id)
{
}
}