0

这是我的角度代码。

dataService.addFrameInventory($routeParams.id, $scope.newFrameInventory)
 .then(function() {
   },
   function() {
   });

这是我的工厂代码

    var _addFrameInventory = function (frameId, newFrameInventory) {

    var params = { frameId: frameId, newFrameInventory: newFrameInventory };
    $http.post("../api/v1/FrameInventory/post", params)
       .then(function (result) {
              //success
       },
           function () {
               //error
           });
     };

这是我的 api 控制器

public HttpResponseMessage Post([FromBody]FrameInventory frameInventory)
{
    _repository.Save(frameInventory);
    return Request.CreateResponse(HttpStatusCode.Created, frameInventory);
}

这是我的模型

public class FrameInventory
{
   Id {get; set;} //Identity column
   FrameId {get; set;}
   Supplier {get; set;}
   StockUnits {get; set;}
   StockReceivedDate {get; set;}
   StockUnits {get; set;}
   ...
}

这是我在 chrome 中看到的。我在params. 但是在“发布”方法中,我只能正确检索 FrameId,其余的都是空的。我确定参数传递本身有问题。因为我已经完成了单元测试,所以Post. 但我无法弄清楚。

4

1 回答 1

0

看起来您可能发布了错误类型的对象。

您的帖子期望看到一个FrameInventory对象,包含FrameId和一堆其他的东西。看起来你正在处理它params包含对象

{ frameId: frameId, newFrameInventory: newFrameInventory }

我希望只使用你的变量名

$http.post("../api/v1/FrameInventory/post", params)

应该读

$http.post("../api/v1/FrameInventory/post", newFrameInventory)

只要newFrameInventory具有您为FrameInventory.

于 2013-11-02T14:10:46.960 回答