无法理解这个简单的 ajax 调用。 Controller 按预期成功返回 json 文件,但记录了两个零作为国家和金额的值,这是不正确的。我在这里做错了什么?
Controller :
[HttpPost("search")]
public IActionResult test(int country, int amount)
{
System.Console.WriteLine(country);
System.Console.WriteLine(amount);
return Json("success : true");
}
jQuery:
var data = "{ 'country': 2, 'amount': 4}";
$.ajax({
url: "search",
type: "POST",
data: data,
cache: false,
contentType: "application/json",
success: function (data) {
alert("hi"+ data);
}
});
请您参考如下方法:
创建一个模型来保存所需的值
public class TestModel {
public int country { get; set; }
public decimal amount { get; set; }
}
使用 [FromBody] 属性更新操作以期望请求正文中的数据
[HttpPost("search")]
public IActionResult test([FromBody]TestModel model) {
if(ModelState.IsValid) {
var country = model.country;
var amount = model.amount;
System.Console.WriteLine(country);
System.Console.WriteLine(amount);
return Ok( new { success = true });
}
return BadRequest(ModelState);
}
客户端你需要确保数据以正确的格式发送
var data = { country: 2, amount: 4.02 };
$.ajax({
url: "search",
type: "POST",
dataType: 'json',
data: JSON.stringify(data),
cache: false,
contentType: "application/json",
success: function (data) {
alert("hi"+ data);
}
});
