Asp.net web api 自托管Web API-Post参数为null

Asp.net web api 自托管Web API-Post参数为null,asp.net-web-api,.net-4.5,Asp.net Web Api,.net 4.5,我正在尝试设置一个简单的测试,向我的自托管Web API服务器发出POST请求 var config = new HttpSelfHostConfiguration(new Uri(baseAddress)); // add a route config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}",

我正在尝试设置一个简单的测试,向我的自托管Web API服务器发出POST请求

var config = new HttpSelfHostConfiguration(new Uri(baseAddress));

// add a route
config.Routes.MapHttpRoute(name: "DefaultApi",
                            routeTemplate: "api/{controller}/{id}",
                            defaults: new { id = RouteParameter.Optional }
);

server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
我添加了一个控制器:

public class PayloadController : ApiController
{    
    public string Get()
    {
        return "Hello from GET";
    }

    public HttpResponseMessage PostItem(Payload payload)
    {
        // payload 
        //...
    }
}
我有相应的模型(确保它包含属性):

我正在使用Chrome上的Rest控制台测试服务器,在我的控制器中得到正确的结果

以邮寄方式发出以下请求:

Request Url: http://localhost:8080/api/payload
Request Method: POST

Params: {
    "Date": "2012.09.26",
    "Command": "Hello"
}
编辑:内容类型设置为application/json,编码为UTF-8

在控制器上设置断点表明POST参数未正确反序列化为
Paylod
对象,参数为
null


我可能缺少什么?

您需要将请求内容类型指定为
application/json

编辑

使用以下评论中的信息完成回复:

如果使用REST控制台的“请求参数”而不是“请求有效负载原始主体”,则即使指定
application/JSON
,也不会从这些参数生成JSON

您需要将原始JSON粘贴到原始正文字段中,如下所示:


您需要将请求内容类型指定为
application/json

编辑

使用以下评论中的信息完成回复:

如果使用REST控制台的“请求参数”而不是“请求有效负载原始主体”,则即使指定
application/JSON
,也不会从这些参数生成JSON

您需要将原始JSON粘贴到原始正文字段中,如下所示:


事实上我是这样做的,plus编码设置为UTF-8。如果您使用REST控制台的“请求参数”而不是“请求有效负载原始体”,它将不会从中生成JSON。您需要将原始JSON粘贴到原始正文字段中,这就是我所缺少的。谢谢事实上我是这样做的,plus编码设置为UTF-8。如果您使用REST控制台的“请求参数”而不是“请求有效负载原始体”,它将不会从中生成JSON。您需要将原始JSON粘贴到原始正文字段中,这就是我所缺少的。谢谢
Request Url: http://localhost:8080/api/payload
Request Method: POST

Params: {
    "Date": "2012.09.26",
    "Command": "Hello"
}
{
    "Date": "2012.09.26",
    "Command": "Hello"
}