You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript字符串数组无法传递至ASP.NET Core控制器方法问题

解决JavaScript数组无法传递到ASP.NET Core控制器的问题

问题原因

ASP.NET Core默认不会自动将请求体中的JSON数组绑定到List<string>参数,需要显式指定使用请求体绑定,同时要确保请求格式匹配框架的解析规则。

修复步骤

1. 修改控制器方法,添加[FromBody]特性

在控制器的参数前加上[FromBody],明确告知框架从请求体中读取数据并绑定到该参数:

[HttpPost]       
public IActionResult ReinstateEmployeeUpdate([FromBody] List<string> employeeIds)
{
   return View();
}

2. 优化前端AJAX请求(可选但推荐)

你的前端代码中重复设置了contentType,可以合并为一处避免冗余,不影响功能但代码更简洁:

function UpdateEmployee() {
    var employeeIds = ["346", "347"];
     
    $.ajax({
        type: "POST",
        contentType: "application/json",
        url: "/Employee/ReinstateEmployeeUpdate",
        dataType: "json",
        data: JSON.stringify(employeeIds),
        success: function (response) {
            console.log(response);
        },
        error: function (response) {
            console.log(response.responseText);
        }
    });
}

原理说明

  • [FromBody]是ASP.NET Core模型绑定的核心标识,它指示框架从HTTP请求的Body部分读取数据,而非URL查询字符串或表单数据。
  • 前端通过JSON.stringify()将数组转为标准JSON字符串,配合contentType: "application/json",确保请求体格式完全符合后端的解析要求。

内容的提问来源于stack exchange,提问作者Alevel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:25:27