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

ASP.NET MVC中POST传递JSON数组至ActionResult时参数为null问题

解决ASP.NET MVC POST请求中数组参数为Null的问题

我来帮你排查并解决这个问题,你的情况主要有两个核心原因:AntiForgeryToken未在AJAX请求中传递,以及JS中数组维度与控制器参数不匹配,下面一步步来修复:

1. 必须传递AntiForgeryToken

你的Submit方法加了[ValidateAntiForgeryToken]特性,但当前AJAX请求里没有携带这个令牌——这不仅可能导致参数绑定失败,甚至会直接触发请求验证错误(400 Bad Request)。

修复方式:

先确保视图中存在@Html.AntiForgeryToken()(可以放在表单内或页面任意位置),然后在AJAX请求中添加令牌参数:

var tag = ["Incident Type 1", "Incident Type 2"]; // 先调整数组结构,后面解释原因
$('#SubmitBtn').click(function (e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        dataType: "json",
        url: "@Url.Action("Submit", "YourActualControllerName")", // 替换成你的真实控制器名
        traditional: true,
        data: {
            name: tag,
            __RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val()
        },
        success: function (msg) {
            alert(msg)
        }
    });
});

2. 匹配数组维度(核心问题)

你当前JS里的tag是二维数组:[["Incident Type 1"],["Incident Type 2"]],但控制器接收的是一维字符串数组string[] name——ASP.NET MVC的模型绑定无法自动将二维数组转换为一维,所以参数会返回null。

两种修复方案:

方案A:修改JS数组为一维数组(推荐,适配现有控制器参数)

直接把tag改成一维结构,这是最简单的适配方式:

var tag = ["Incident Type 1", "Incident Type 2"];

结合上面的AJAX修改,控制器的string[] name就能正常接收到值了。

方案B:修改控制器参数为二维数组(如果业务需要保留二维结构)

如果你的业务逻辑确实需要传递二维数组,那么把控制器的参数改成二维字符串数组:

// POST
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize(Roles = "Student")]
public ActionResult Submit(string[][] name) // 改为二维数组
{
    // 你的业务处理逻辑
    return RedirectToAction("Index", "Home");
}

同时JS里保持原二维数组,AJAX里的traditional:true要保留,这样模型绑定就能正确识别二维数组了。

3. 额外注意点

  • 确保@Url.Action("Submit", "YourActualControllerName")中的控制器名称是真实存在的(比如控制器是HomeController,这里就写"Home")。
  • 因为你用的是AJAX请求,控制器返回RedirectToAction不会自动触发前端跳转,如果需要跳转,可以修改控制器返回JSON告知跳转地址:
public ActionResult Submit(string[] name)
{
    return Json(new { redirectUrl = Url.Action("Index", "Home") });
}

然后在JS的success回调中处理跳转:

success: function (data) {
    window.location.href = data.redirectUrl;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:10:34