无法通过POST请求AJAX

时间:2019-07-17 13:47:09

标签: javascript c# ajax post

我正在尝试通过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: "的输出

为什么我的代码没有接收任何数据? 我做错了什么吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

尝试删除"data: "并将"url: "更改为:{ value: "~/Controller/Method?saluto=true" })

答案 1 :(得分:0)

您需要将操作的签名更改为

public async Task<string> testHelloWorld([FromBody]bool saluto)

默认情况下,模型绑定程序在请求参数中查找简单类型,而不是请求正文。

Tadej's answerWhy do we have to specify FromBody and FromUri?中查看更多信息。