我试图习惯AJAX的工作方式,所以我只是try 将一个字符串发送到C#方法(我以前也try 过Json和其他类型),但无论我做什么更改,该方法似乎总是接收空/不接收任何值.

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的内容始终为空.

我try 将已发送、预期的数据类型及其来源修改为FromBody、FromForm和None.我还try 了不同的URL,但这不是问题所在,因为该方法被正确调用.

推荐答案

try 将您的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 });
}

结果:

enter image description here

Csharp相关问答推荐

在Microsoft XNA框架(MonoGame)中旋转相机

无法使用ternal- .net修复可空警告

错误401未授权ASP.NET Core.使用JWT创建身份验证/授权

始终保留数组中的最后N个值,丢弃最老的

Polly v8—使用PredicateBuilder重试特定的状态代码

在路由中使用枚举

为什么我的表单在绑定到对象时提交空值?

更改执行目录

我的MRG32k3a算法实现返回的数字超出了预期的[0,1]范围

当索引和外键是不同的数据类型时,如何设置导航属性?

具有以接口为其类型的属性的接口;类指定接口的实现,但无效

依赖项注入、工厂方法和处置困境

如何在CSharp中将json字符串转换为DataTable?

try 链接被委派者(多播委托)时,无法将获取运算符应用于类型为';方法组&39;和方法组';的操作数

泛型参数在.NET 8 AOT中没有匹配的批注

如何解决System.StackOverflowException:抛出System.StackOverflowException类型的异常.&# 39;生成随机代码时发生异常?

Maui:更改代码中的绑定字符串不会更新UI,除非重新生成字符串(MVVM)

如何使用LINQ在C#中填充列表列表?

实体框架允许您具有筛选的属性吗?

默认架构不存在EF核心迁移