【发布时间】:2017-07-22 16:50:15
【问题描述】:
我有一个 ASP.NET MVC 5 Web 应用程序,它使用 HTTP POST 将数据发送到 ASP.NET Web API 2 操作。 Web API 动作被命中,但数据全部为空。
POST 发送自:
var url = 'http://MyWebApi/api/MyController/MyAction/1';
var obj = { pamA: 'a', pamB: 1 };
var data = { json: ko.toJSON(obj) };
// var data = ko.toJSON(obj); // tried this too, but same problem.
$.ajax({
type: 'post',
dataType: 'json',
url: url,
data: data,
});
我的 Web API 操作是:
[System.Web.Http.HttpPost]
[System.Web.Http.Route("{id:int}")]
[ResponseType(typeof(Models.MyModel))]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public IHttpActionResult Post(int id, Models.MyModel json){
return Ok(200); // break point is hit but json doesn't have the data sent from client.
}
我的模型是:
public class MyModel{
public string pamA {get; set;}
public int pamB {get; set;}
}
【问题讨论】:
-
试试:
var data = ko.toJSON(obj); -
@ChrisPratt,我试过了,但仍然是同样的问题。谢谢。
-
好的,接下来,在你的 AJAX 调用中使用
contentType: "application/json"。 -
您可能还想尝试在
json参数前加上[FromBody]:[FromBody]Models.MyModel json -
@ChrisPratt,将 'dataType' 更改为 'contentType' 值 'application/json' 修复了它。多么奇怪!谢谢!
标签: asp.net-mvc-5 asp.net-web-api2