尽管我深入研究了堆栈溢出和大量文档,但我仍然无法通过jquery将对象发送到c# mvc应用程序。在控制器中返回的顺序的属性值总是看起来是空的。
谢谢你的帮助!
JAVASCRIPT
function Order()
{
this.Partner;
this.OrderID;
this.TypeOfOrder;
this.SubmittedBy;
this.CompanyID;
this.CompanyName;
}
jQuery('button[type="submit"]').click(function (event) {
event.preventDefault();
var order = new Order();
order.Partner = "ABC",
order.OrderID = "123";
order.TypeOfOrder = "Website";
console.log(order);
jQuery.ajax({
url: "/my-route",
type: "POST",
dataType: 'json',
contentType: "application/json",
data: order,
success: function (data) {
console.log(data);
},
failure: function (response) {
console.log("ERROR!");
}
});
})
C#模型
public class Order
{
public string Partner { get; set; }
public string OrderID { get; set; }
public string TypeOfOrder { get; set; }
public string SubmittedBy { get; set; }
public string CompanyID { get; set; }
public string CompanyName { get; set; }
}
C#控制器
// POST my-route
[HttpPost]
public Order Post(Order order)
{
return order;
}
控制台
发布于 2018-05-30 20:21:29
您需要更改方法签名以包含FromBody。
公共秩序邮报(FromBodyOrder order)
发布于 2018-10-30 07:02:38
只需删除ajax调用中的内容类型即可。看起来会是这样的。
jQuery.ajax({
url: "/my-route",
type: "POST",
dataType: 'json',
data: order,
success: function (data) {
console.log(data);
},
failure: function (response) {
console.log("ERROR!");
}
});
ajax将默认设置内容类型。
发布于 2019-03-01 03:21:24
jQuery.ajax({ url: "/controllerName/methodName", type: "POST", data: order, success: function (data) { console.log(data); }, failure: function (response) { console.log("ERROR!"); } });
https://stackoverflow.com/questions/50612773
复制相似问题