C# 方法从 ajax 调用接收 null

问题描述 投票:0回答:1

我试图适应 ajax 的工作原理,所以我只是尝试将字符串发送到 C# 方法(我之前也尝试过 Json 和其他类型),但无论我更改什么,该方法似乎总是收到 null /没有收到任何价值。

function select(jobId){
    console.log(jobId);
    $.ajax({
        url: '@Url.Action("SelectJob", "Home")',
        type: 'post',
        dataType: 'json',
        contentType: 'application/json',
        data: JSON.stringify({ 'userId': jobId }),
        success: function () {
            console.log("yes");
        },
        error: function () {
            console.log("no");
        }
    });
}

这是我目前想出的ajax调用。 而调用的 C# 方法是这样定义的:

[HttpPost]
public ActionResult SelectJob([FromBody] string jsonData)
{
    return Json(new { success = true, message = jsonData });
}

但是 jsonData 的内容始终为空。

我尝试将发送的数据类型、预期及其来源修改为 FromBody、FromForm 和 none。我也尝试了不同的网址,但这不是问题,因为该方法被正确调用。

c# asp.net-mvc asp.net-core asp.net-ajax
1个回答
0
投票

尝试修改你的ajax,例如:

$.ajax({
     url: '@Url.Action("SelectJob", "Home")',
     type: 'post',
     data: { jsonData: jobId },
     success: function () {
         console.log("yes");
     },
     error: function () {
         console.log("no");
     }
 });

然后删除

[FromBody]

[HttpPost]
public ActionResult SelectJob( string jsonData)
{
    return Json(new { success = true, message = jsonData });
}

结果:

© www.soinside.com 2019 - 2024. All rights reserved.