javascript - 为什么对 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; }
}
解决方案
像这样更新您的方法:
[HttpPost]
public IActionResult BuyBook([FromBody] Models.Order order)
{ .... }
你可以在这里找到更多信息
推荐阅读
- php - 从字符串 php wordpress 获取 ID
- c# - webapi 参数为空
- dialogflow-es - 如何在 dialogflow v2 api 中从内联编辑器设置 outputContext
- ios - 快速嵌套重复循环
- angular - 绑定没有路由器链接以显示 id 的 Angular 6
- hyperledger-fabric - 访问被拒绝:频道 [mychannel] 创建者组织 [Org2MSP]
- javascript - 我想隐藏一个元素,但 document.getElementById() 为空
- glassfish-3 - 在 Oracle 包中为 Eclipse 创建 Glassfish 服务器时需要 Java 6 或 7 错误
- java - Spark:读取/写入 CSV 时出现 ClassNotFoundException
- c# - 嵌套 $expands 的 Asp.net WebApi OData V4 问题