我正在尝试使用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!
答案 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');
}
});