Web API POST使用[FromBody]给出null
本文关键字:给出 null FromBody API POST 使用 Web | 更新日期: 2023-09-27 18:02:57
这是我的WebAPI (c#):
[Route("")]
[HttpPost]
public void SaveTestRun([FromBody] object data)
{
inputResultsToDatabase(data);
}
这是我的ajax请求:
sendTestData() {
this.get('ajax').request('/web/api/test/', {
data: {"name":"John Doe", "age":18, "country":"United States of America"},
method: 'POST',
dataType: 'object',
headers: {
AjaxRequestUniqueKey: getAntiForgeryToken()
}
});
},
我得到的对象显示在谷歌开发人员工具,但"数据"设置为空。我已经尝试发送对象作为一个字符串,与相同的结果。
[FromBody]用于从请求体中提取简单类型。
更新Action以接受一个类型参数
public class MyObject {
public string name { get; set; }
public int age { get; set; }
public string country { get; set; }
}
[Route("")]
[HttpPost]
public void SaveTestRun(MyObject data) {
inputResultsToDatabase(data);
}
接下来,请确保您以正确的格式发布数据
sendTestData() {
var data = {"name":"John Doe", "age":18, "country":"United States of America"};
this.get('ajax').request('/web/api/test/', {
data: JSON.stringify(data),
method: 'POST',
contentType: 'application/json',
headers: {
AjaxRequestUniqueKey: getAntiForgeryToken()
}
});
},