Ajax调用有效,但传递的对象为空。
这是一个将cart对象传递给控制器动作的简单设置。
调用发生但是当人遇到Action时man是空的。
正在发送的付款点(镀铬)是:
{"man":"testtext2"}
回复是:
{"man":null}
.net cartitem:
public class Cartitem
{
public string man { get; set; }
}
Javascript cartitem:
class cartitem {
constructor( _man, ) {
this.man = _man;
}
}
控制器操作:
[HttpPost]
public ActionResult AddToCart(Cartitem myCartitem)
{
//ERROR: cartitem values are coming in empty
return Json(myCartitem);
}
的Javascript
$(".AddLink").click(function () {
var json = JSON.stringify(c);
var cartitem = JSON.stringify({
'man': 'testtext2',
});
$.ajax({
type: "POST",
url: '@Url.Action("AddToCart", "ShoppingCart")',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: cartitem,
success: function (data) {
alert("Data Back: " + data.man);
}
});
});
编辑 为了删除大量的红色听证会,我已将代码简化为单个字符串(man)。 结果是一样的,MyCartitem是空的。
答案 0 :(得分:0)
将[FromBody]添加到Action方法,例如
public ActionResult AddToCart([FromBody] Cartitem myCartitem) {
}
失去了2天!