在ASP.Net WEBAPI中成功后期操作后,Angularjs控制器触发错误功能

时间:2014-07-04 17:06:58

标签: asp.net angularjs asp.net-web-api

我有三个表Product,Order和OrderDetails。我正在使用AngularJS和ASP.Net WebAPI。现在的问题是,我可以在OrderDetails表中成功插入数据。但是在回调中,虽然post操作成功执行,但它调用error函数代替angularjs控制器中的success函数。搜索了很长时间后无法弄清楚问题。

在我的app.js

$scope.addorder = function () {
    $http.post('/api/OrderDetails/', $scope.orders).success(function (data) {
        alert("Added Successfully!!");
        $scope.orders = [];
    }).error(function (data) {
        $scope.error = "Error occured!"
    });
};

在我的OrderDetailsController.cs

    private static readonly IOrderDetailRepository _orders = new OrderDetailRepository();

    // POST api/<controller>
    public Order Post(List<OrderDetail> orderDetails)
    {
        Order aOrder = new Order();
        aOrder.AllOrders = orderDetails;
        aOrder.odate = DateTime.Now;
        return _orders.Add(aOrder);
    }

在我的OrderDetailsRepository.cs

    private readonly MediaSoftContext _db;

    public OrderDetailRepository()
    {
        _db = new MediaSoftContext();
    }        

    public Order Add(Order order)
    {
        _db.Orders.Add(order);
        _db.SaveChanges();
        return order;
    }

1 个答案:

答案 0 :(得分:0)

如上所述,500错误表示服务器上的失败,与Angular无关。您需要使用调试断点找出服务器上发生错误的位置。

还要检查网络选项卡,了解有效负载发送到服务器的内容。它可能会发送某种序列化数组,但这些数组不能直接作为IEnumerable<OrderDetail>使用。