Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';使用POST请求AJAX传递/接收值_Javascript_C#_Ajax_Post - Fatal编程技术网

Javascript Can';使用POST请求AJAX传递/接收值

Javascript Can';使用POST请求AJAX传递/接收值,javascript,c#,ajax,post,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 () {

我正试图通过Ajax Post请求发送一些数据。 请求的代码如下所示:

$.ajax({
    url: "[url of page]",
    type: "POST",
    data: {saluto: true},
    dataType: 'text',
    success: function (response) {
        alert("successful" + response);
    },
    error: function () {
        alert("error");
    }
});
所以在这种情况下,我应该收到
salloto=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;
    }
}
[HttpPost(“测试”)]
公共异步任务testHelloWorld(bool-Saleto)
{
尝试
{
string testString=“Funziona”;
Write(testString+“:“+salloto+”\n”);
返回testString;
}
捕获(例外情况除外)
{
Log.Error(“API(CallToXML)-异常”,ex);
返回null;
}
}
所以如果
salloto=true
我的控制台应该打印“Funziona:True” 输出tho是
“Funziona:False”

如果我对一个字符串尝试同样的操作,它不会打印字符串,只会留下输出,如
“Funziona:”

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

尝试删除
数据:
并将
url:
更改为:
{value:“~/Controller/Method?sallo=true”}
您需要将操作的签名更改为

public async Task<string> testHelloWorld([FromBody]bool saluto)
公共异步任务testHelloWorld([FromBody]bool-Saleto)
默认情况下,模型绑定器在请求参数中查找简单类型,而不是在请求主体中


查看以获取更多信息。

请包括用于发送和接收字符串的代码可能与否重复,但它看起来确实像javascript,这就是问题所在。@TommasoBertoni这是相同的代码,我只是将
bool-salloto
更改为
string-salloto
,前端请求变为
salloto:“prova”
当您从前端发送
true
时,您是否收到
salto==false
?数据很简单,使用
POST
发送,因此无法从URI中提取
@TommasoBertoni非常正确,应该是
[FromBody]
-更正了这更好,但我认为这不会解决问题。如果只有一个参数,或者请求来自
POST
我正在检查另一个答案是否有效,asp.net应该能够理解源代码。我会在一秒钟内检查此方法,thanks@phuzi仅添加[FromBody]没有帮助,它实际上使情况变得更糟,因为请求甚至无法被发送到您的方法,它可以工作,但如果我尝试发送更大的字符串,它将无法工作。请求的状态仍将返回错误