c#MVC从angularjs接收控制器中的json数组

时间:2016-01-07 11:27:07

标签: c# angularjs json asp.net-mvc

我正在购物网站,我有一个产品型号:

private string _catalog;
    [Key]
    [Required]
    [RegularExpression("^[0-9]{4}$",ErrorMessage="Catalog number must contain 4 digits")]
    public string Catalog
    {
        get
        {
            return _catalog;
        }
        set
        {
            _catalog = value.ToString();
        }
    }
    [Required]
    public string Name { get; set; }
    [Required]
    public double Price { get; set; }
    [Required]
    public int Quantity { get; set; }
    public string Image { get; set; }

我在AngularJS中定义了一个json数组

$scope.Cart=[{}];

并通过

将商品添加到购物车
$scope.Cart.push(...);

现在我有了发布命令:

$http({ method: "POST", data: $scope.Cart, url: "Buy" })
            .success(function (data, status, headers, config) {
                $scope.lock = false;
            });

行动是:

public ActionResult Buy(List<Product> pr){
     return Content("Buy");
}

但pr列表为空。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

修正了它。我试图使用angular.toJson()但仍然是null,但后来我删除了始终为空的0元素,并将其发送到帖子,最后工作。

            $scope.Cart.splice(0, 1);
            var param = angular.toJson($scope.Cart);
            $http({ method: "POST", data: param, url: "Buy" })
            .success(function (data, status, headers, config) {
                $scope.lock = false;
            });