17

我可以调用网络服务,但名称属性没有绑定。

提琴手请求

POST http://localhost:50399/api/custservice/ HTTP/1.1
User-Agent: Fiddler
Host: localhost: 50399
Content-Length: 28
{ "request": { "name":"test"}}

POST 网络方法

public string Any(CustomerRequest request)
{
  //return details
}

客户请求.cs

public class CustomerRequest 
{
  public string name {get;set;}
}
4

1 回答 1

42

首先,您需要将 Content-Type 'application/json' 添加到请求中:

POST http://localhost:50399/api/custservice/ HTTP/1.1
User-Agent: Fiddler
Host: localhost: 50399
Content-Type: application/json

然后将您的 POST 数据更改为:

{"name":"test"}

您将能够使用以下方式访问数据:

public string Any(CustomerRequest request)
{
  return request.name
}

或者使用您现有的 POST 数据结构创建一个新类:

public class RequestWrapper
{
  public CustomerRequest request { get; set; }
}

并将您的 Action 方法更改为:

public string Any(RequestWrapper wrapper)
{
  return wrapper.request.name;
}
于 2013-03-14T16:29:20.437 回答