我正在尝试通过Ajax Post请求发送一些数据。 请求的代码如下:
$.ajax({
url: "[url of page]",
type: "POST",
data: {saluto: true},
dataType: 'text',
success: function (response) {
alert("successful" + response);
},
error: function () {
alert("error");
}
});
因此,在这种情况下,我应该收到saluto = true
这是后端代码:
[HttpPost("Test")]
public async Task<string> testHelloWorld(bool saluto)
{
try
{
string testString = "Funziona";
Console.Write(testString + ": " + saluto + "\n");
return testString;
}
catch (Exception ex)
{
Log.Error("API(CallToXML) - Exception", ex);
return null;
}
}
如果saluto = true
我的控制台应打印"Funziona: True"
输出是"Funziona: False"
如果我使用字符串尝试相同的操作,它将不会打印字符串,而只会留下类似"Funziona: "
的输出
为什么我的代码没有接收任何数据? 我做错了什么吗? 谢谢。
答案 0 :(得分:0)
尝试删除"data: "
并将"url: "
更改为:{ value: "~/Controller/Method?saluto=true" })
。
答案 1 :(得分:0)
您需要将操作的签名更改为
public async Task<string> testHelloWorld([FromBody]bool saluto)
默认情况下,模型绑定程序在请求参数中查找简单类型,而不是请求正文。
在Tadej's answer至Why do we have to specify FromBody and FromUri?中查看更多信息。