首页 > 解决方案 > C# MVC 通过 JQuery AJAX 发送对象

问题描述

尽管我研究了 stackoverflow 和很多文档,但我仍然坚持这一点:我无法通过 jquery ajax 将对象发送到 ac# 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;
}

安慰

在此处输入图像描述

标签: c#jqueryajaxobjectmodel-view-controller

解决方案


您需要更改方法签名以包含 [FromBody]

所以:公共订单发布([FromBody]订单)


推荐阅读