发布带有Ajax问题的数据

时间:2018-07-03 21:01:22

标签: c# asp.net ajax asp.net-mvc post

我正在尝试使用ajax将对象传递给HttpPost方法。

这是我的ajax方法:

function addItem(invoiceID) {
var newItemVM = {
    Description : $('#item-description').val(),
    Quantity : $('#item-quantity').val(),
    ItemTaxFreePrice : $('#item-tax-free-price').val()
};

$.ajax({
    type: 'POST',
    url: 'AddItem',
    data: JSON.stringify({ newItemVM: newItemVM }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        $('#new-item').text(result.Quantity + 'Hello');
    }
});

}

这是C#中的HttpPost方法

[HttpPost]
    public async Task<IActionResult> AddItem(NewItemVM newItemVM)
    {
        return Json(newItemVM);
    } 

这是NewItemVM类:

public class NewItemVM
{
    public string Description { get; set; }
    public int Quantity { get; set; }
    public double ItemTaxFreePrice { get; set; }
}

问题在于newItemVM对象中的参数始终为空。

有人可以告诉我我错过了什么吗? Tnq!

1 个答案:

答案 0 :(得分:0)

嗨,您不需要在json对象调用中指定模型的名称,应该像下面

$.ajax({
    type: 'POST',
    url: 'AddItem',
    data:  newItemVM ,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        $('#new-item').text(result.Quantity + 'Hello');
    }
});