为什么我的MVC Action没有看到我的ajax传递对象

时间:2017-10-20 12:34:00

标签: javascript jquery ajax asp.net-mvc

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是空的。

1 个答案:

答案 0 :(得分:0)

将[FromBody]添加到Action方法,例如

public ActionResult AddToCart([FromBody] Cartitem myCartitem)         {

}

失去了2天!