C# WebApi方法未获取过帐数据。少了什么?
我正在尝试使用ASP.NET WebApi 2实现臭名昭著的Todo应用程序 待办事项模式: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请求正文
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());