asp.net ajax不发送数据

Posted

技术标签:

【中文标题】asp.net ajax不发送数据【英文标题】:asp.net ajax not sending data 【发布时间】:2018-04-13 02:49:53 【问题描述】:

我的 AJAX 没有向我的 http post 控制器发送数据。

我的控制器:

[Route("api/sendingData")]
public class TestController : ApiController

    [HttpPost]
    public string Post([FromBody] int propertyID)
    
        return string.Format("Test");
    

我的 AJAX:

$.ajax(
    
        url: "api/sendingData",
        type: "POST",
        dataType: 'json',
        data: 
            'propertyID': '1'
        ,
        success: function (result) 
            console.debug(result);
            alert(result);
        ,
        error: function (xhr, status, p3, p4) 
            console.debug(xhr);
            var err = "Error " + " " + status + " " + p3;
            if (xhr.responseText && xhr.responseText[0] == "")
                err = JSON.parse(xhr.responseText).message;
            alert(err);
        
    );

我正在尝试发送propertyID=1。但是,当我调试控制器时,它显示propertyID=0

有谁知道怎么回事?

【问题讨论】:

请测试一下:data: propertyID: JSON.stringify('1') 谢谢。但还是同样的问题 去掉单引号试试看:data: propertyID: 1 , 解决方案:数据:“”:1。我不知道为什么 另外,[FromBody] 可能是问题所在。如果您将其删除或改用 [FromUri] 会怎样? 【参考方案1】:

可能看起来很奇怪,但你只发送一个值,而不是模型,所以 stringify 是 JSON.stringify(value)

var propertyID = 1;
$.ajax(
    url: "api/sendingData",
    contentType: 'application/json',
    type: 'POST',
    data: JSON.stringify(propertyID),
    success: function (result) 
        console.debug(result);
        alert(result);
    ,
    error: function (xhr, status, p3, p4) 
        console.debug(xhr);
        var err = "Error " + " " + status + " " + p3;
        if (xhr.responseText && xhr.responseText[0] == "")
            err = JSON.parse(xhr.responseText).message;
        alert(err);
    
);

我还删除了 dataType json 因为您的操作方法不是返回 json 而是一个字符串。现在我取得了成功。

【讨论】:

以上是关于asp.net ajax不发送数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有附加数据的 FormData 文件发送到 asp.net web api ajax 调用

ASP.NET Core MVC - 使用 Ajax 将数据发送到另一个模型中的模型

ASP.NET MVC Controller接收ajax post方式发送过来的json对象或数组数据

ASP.NET MVC Controller接收ajax post方式发送过来的json对象或数组数据

如何在 ASP.Net MVC 5 中调用嵌套 ajax 调用并将对象数据发送到控制器

在 DataTable Delete 操作中多次发送 Ajax 请求 - ASP.NET、JQuery、Ajax