我的AJAX没有将数据发送到我的http post控制器。
我的控制器:
[Route("api/sendingData")]
public class TestController : ApiController
{
[HttpPost]
public string Post([FromBody] int propertyID)
{
return string.Format("Test");
}
}
我的AJAX:
$.ajax(
{
url: "api/sendingData",
type: "POST",
dataType: 'json',
data: {
'propertyID': '1'
},
success: function (result) {
console.debug(result);
alert(result);
},
error: function (xhr, status, p3, p4) {
console.debug(xhr);
var err = "Error " + " " + status + " " + p3;
if (xhr.responseText && xhr.responseText[0] == "{")
err = JSON.parse(xhr.responseText).message;
alert(err);
}
});
我正在尝试发送propertyID=1
。但是,当我调试控制器时,它会显示propertyID=0
。
有谁知道出了什么问题?
答案 0 :(得分:2)
可能看起来很奇怪,但你只发送一个值,而不是模型,所以stringify是JSON.stringify(value)
var propertyID = 1;
$.ajax({
url: "api/sendingData",
contentType: 'application/json',
type: 'POST',
data: JSON.stringify(propertyID),
success: function (result) {
console.debug(result);
alert(result);
},
error: function (xhr, status, p3, p4) {
console.debug(xhr);
var err = "Error " + " " + status + " " + p3;
if (xhr.responseText && xhr.responseText[0] == "{")
err = JSON.parse(xhr.responseText).message;
alert(err);
}
});
我还删除了dataType json,因为你的action方法不是返回json而是返回一个字符串。现在我获得了成功。