WebApi方法没有得到发布的数据.缺少了什么?
本文关键字:数据 什么 方法 WebApi | 更新日期: 2023-09-27 18:04:56
我正在尝试使用ASP实现臭名昭著的Todo
应用程序。. NET WebApi 2.
Todo模型:
public class Todo
{
public int Id { get; set; }
public string Title { get; set; }
}
WebApi Post:
public void Post([FromBody]Todo todo)
{
// code to handle post.
}
Javascript
click
$("#add").click(function(e) {
var todo = {
"Id": 20000,
"Title": "Hello world"
};
$.post( "http://localhost:51386/api/todo", JSON.stringify(todo))
.done(function( data ) {
alert( "Data Loaded: " + data );
});
});
我的HTTP
请求体看起来像这样:
{"Id":20000,"Title":"Hello world"}
使用默认路由。
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
当我调试Post
方法时,它总是空的。我到底错过了什么?
根据您的示例代码,我所能想到的是您没有在配置中包含JSON Formatter。它应该是这样的:
System.Web.Http.GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
config.Formatters.Insert(0, new System.Net.Http.Formatting.JsonMediaTypeFormatter());
Content-Type=application/json
只有在你设置了合适的格式化器后才会起作用。