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

ASP.NET Core控制器通过JS/JQuery获取设置值时始终为NULL

解决ASP.NET Core中JS设置表单值后控制器接收为Null的问题

排查与解决步骤:

  1. 确保表单提交目标Action正确
    你的form标签未指定提交目标,默认会提交到当前页面对应的Action。如果处理逻辑在Users Action中,需显式指定控制器和Action:

    <form id="depForm" class="formAddDepart" method="post" asp-action="Users" asp-controller="Post">
    

    (将Post替换为你的实际控制器名称)

  2. 改用name属性选择表单元素(比ID更可靠)
    表单提交依靠name属性完成模型绑定,而非ID。直接通过name选择元素设置值,避免ID可能出现的命名冲突:

    function anullUser() {
        $("input[name='Mod']").val("2");
        $("#depForm").submit();
    }
    
  3. 检查是否缺失CSRF令牌
    ASP.NET Core默认拦截无CSRF令牌的POST请求,会直接导致模型绑定失败。确保form中包含防伪造令牌:

    @Html.AntiForgeryToken()
    

    或在form标签上添加asp-antiforgery="true",让框架自动生成令牌。

  4. AJAX提交的正确写法(如果需要)
    若尝试AJAX提交无效,需确保传递完整表单数据和CSRF令牌:

    function anullUser() {
        $("input[name='Mod']").val("2");
        const formData = $("#depForm").serialize();
        $.ajax({
            url: "@Url.Action("Users", "Post")",
            type: "POST",
            data: formData,
            headers: {
                "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val()
            },
            success: function(res) {
                // 处理成功逻辑
            }
        });
    }
    

关键提醒:

模型绑定失败最常见的原因是表单提交路径错误、元素选择器未命中目标或缺失CSRF令牌,按上述步骤逐一排查即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:45:24