我有三个表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;
}
答案 0 :(得分:0)
如上所述,500错误表示服务器上的失败,与Angular无关。您需要使用调试断点找出服务器上发生错误的位置。
还要检查网络选项卡,了解有效负载发送到服务器的内容。它可能会发送某种序列化数组,但这些数组不能直接作为IEnumerable<OrderDetail>
使用。