【问题标题】:Passed data to asp.net core controller using ajax is null使用 ajax 将数据传递给 asp.net 核心控制器为空
【发布时间】:2026-01-19 20:45:01
【问题描述】:

我正在尝试使用 ajax 调用 asp.net 核心控制器,但传递的值为 null。

我调试 javacript 是为了检查 ajax 中的参数是否正确。 OrderType 是 IR ID,OrderKeyword 是 test

请看截图

这就是模型

public class OrderSearchInfo
    {
        public int OrderType { get; set; }
        public string OrderKeyword { get; set; }
    }

这是我的控制器

[HttpPost]
        public async Task<ActionResult> SearchOrder([FromBody]OrderSearchInfo order)
        {
            
            return View();
        }

在调试和检查 OrderSearchInfo order 的值为 null

我做错了什么?我该如何解决这个问题?谢谢

【问题讨论】:

标签: asp.net ajax asp.net-mvc asp.net-core asp.net-ajax


【解决方案1】:

我认为有一些要点需要检查:

  • 数据类型:在你的模型中,有int OrderType,但是在JS中你有OrderType: "IR_ID",它不是一个数字,不能映射到int
  • 如果您的表单有RequestVerificationToken,您应该在请求的标头中传递它
  • 路由(确保请求 URL 与 ASP.NET 预期的匹配)

附:请添加您对 cme​​ts 进一步检查的建议,以使此答案更适用于许多人。

【讨论】:

  • 将数据类型更改为字符串解决了这个问题。我什至已经检查了几个小时的代码都没有注意到它。谢谢
最近更新 更多