首页 > 解决方案 > 为什么对 ASP.NET 控制器操作的 Javascript POST 请求获取 NULL 参数?

问题描述

XmlHttpRequets当我从我的 JavaScript 文件发送 a 时,我的 ASP .NET 控制器方法的参数保持为空。JavaScript 调试器显示请求发送成功。为什么它不起作用?

JavaScript 函数:

function BuyBook(title) {
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open("POST", "home/BuyBook", true);
    xmlHttp.setRequestHeader("Content-Type", "multipart/form-data");
    var order = { BookTitle: title, Quantity: document.getElementById("quantity").value };
    xmlHttp.send(JSON.stringify({ order: order }));
    console.log(xmlHttp.responseText);
}

控制器方法:

[HttpPost]
        public IActionResult BuyBook(Models.Order order)
        { .... }

Models.Order 类:

public class Order
    {
        [Required]
        public string BookTitle { get; set; }

        [Range(1,100)]
        public int Quantity { get; set; }
    }

标签: javascriptasp.netxmlhttprequest

解决方案


像这样更新您的方法:

[HttpPost]
public IActionResult BuyBook([FromBody] Models.Order order)
{ .... }

你可以在这里找到更多信息


推荐阅读