C# WebApi方法未获取过帐数据。少了什么?

C# WebApi方法未获取过帐数据。少了什么?,c#,javascript,asp.net,asp.net-web-api,C#,Javascript,Asp.net,Asp.net Web Api,我正在尝试使用ASP.NET WebApi 2实现臭名昭著的Todo应用程序 待办事项模式: public class Todo { public int Id { get; set; } public string Title { get; set; } } WebApi帖子: public void Post([FromBody]Todo todo) { // code to handle post. } Javascript点击 我的HTTP请求正文

我正在尝试使用ASP.NET WebApi 2实现臭名昭著的Todo应用程序

待办事项模式:

public class Todo
{
    public int Id { get; set; }
    public string Title { get; set; }
}
WebApi帖子:

public void Post([FromBody]Todo todo)
 {   
     // code to handle post.
 }
Javascript点击

我的HTTP请求正文如下所示:

{"Id":20000,"Title":"Hello world"}
使用默认路由

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

当我调试方法Post时,它总是空的。我到底遗漏了什么?

根据您的示例代码,我所能想到的就是您没有在配置中包含JSON格式化程序。应该是这样的:

    System.Web.Http.GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
    config.Formatters.Insert(0, new System.Net.Http.Formatting.JsonMediaTypeFormatter());
Content Type=application/json只有在设置了正确的格式化程序时才起作用。

检查您的请求是否有Content-Type头
    System.Web.Http.GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
    config.Formatters.Insert(0, new System.Net.Http.Formatting.JsonMediaTypeFormatter());