这是一个以前出现的问题,通常的答案似乎是:
但这些都没有帮助。
当ajax帖子发生时,它会命中web api动作,但参数为null
我有以下服务器端代码
[HttpPost]
[Route("SafeFloatTopUp")]
public void SafeFloatTopUp([FromBody] SafeFloatDenomination d )
{
//d is null
}
public class SafeFloatDenomination
{
public SafeFloatDenomination();
public string Denomination { get; set; }
public decimal Value { get; set; }
}
,这是从以下客户端代码中调用的:
var d = { Denomination: "1p", Value: 2 };
bankingApi.client.topUp(d);
var topUp = function (denomination) {
$.ajax({
url: '/portalframework/BackOffice/Banking/Banking/SafeFloatTopup',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: denomination
});
};
答案 0 :(得分:0)
答案 1 :(得分:0)
您不需要指定内容类型 - ' application / x-www-form-urlencoded的默认内容类型;字符集= UTF-8'将处理javascript对象而无需将它们转换为字符串:
$.ajax({
url: '/portalframework/BackOffice/Banking/Banking/SafeFloatTopup',
type: 'POST',
data: denomination
});