使用 ajax 传递给 asp.net 核心控制器的数据为空

Passed data to asp.net core controller using ajax is null

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

我调试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 订单 的值是 null

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

我假设有一些要点需要检查:

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

P.S。请在评论中添加您的进一步检查建议,以使此答案更适用于许多人。