【问题标题】:Angularjs controller firing error function after successful post operation in ASP.Net WEBAPI在 ASP.Net WEBAPI 中成功发布操作后,Angularjs 控制器触发错误功能
【发布时间】:2014-07-04 17:06:57
【问题描述】:

我有三个表 Product、Order 和 OrderDetails。我正在使用 AngularJS 和 ASP.Net WebAPI。现在的问题是,我可以在 OrderDetails 表中成功插入数据。但是在回调中它调用错误函数代替了angularjs控制器中的成功函数,尽管post操作成功执行。找了半天也没搞清楚问题。

在我的 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;
    }

【问题讨论】:

  • 在浏览器的开发工具网络选项卡中检查实际请求,看看发生了什么。
  • 它在状态中显示 500 内部服务器错误
  • 好的,这告诉你它与角度无关。需要检查发送的内容是预期的内容并解决您的服务器代码问题
  • 内部服务器错误通常意味着引发了异常但未处理。
  • 我知道这与角度无关。我想我的返回类型有问题。但无法弄清楚它是什么。

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


【解决方案1】:

正如 cmets 所提到的,500 错误意味着 服务器上的故障,并且与 Angular 无关。您需要使用调试断点找出错误在服务器上发生的位置。

还要检查网络选项卡,了解正在向服务器发送的有效负载。它可能会发送某种序列化数组,该数组不能直接作为IEnumerable&lt;OrderDetail&gt; 使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 2017-11-22
    • 2019-06-27
    • 1970-01-01
    相关资源
    最近更新 更多