[英]Web API POST using [FromBody] giving null
Here is my WebAPI (c#): 这是我的WebAPI(c#):
[Route("")]
[HttpPost]
public void SaveTestRun([FromBody] object data)
{
inputResultsToDatabase(data);
}
Here is my ajax request: 这是我的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()
}
});
},
I Get the object to show up in google developer tools, but 'data' is set to null. 我获取了要在Google开发人员工具中显示的对象,但“数据”设置为null。 I've tried sending object as a string, with the same results. 我尝试将对象作为字符串发送,结果相同。
[FromBody] is used to extract simple types from request body. [FromBody]用于从请求正文中提取简单类型。
Update your Action to accept a typed parameter 更新您的操作以接受类型化的参数
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);
}
Next make sure that your are posting the data in the correct format 接下来,请确保您以正确的格式发布数据
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()
}
});
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.