这是我的角度代码。
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
中拥有所有价值观。
但是在'Post'方法中,我只能正确检索FrameId,其余的都是null。我确定参数传递本身有问题。因为我已经完成了单元测试,所以Post
内部方法的功能没有任何问题。但我无法弄明白。
答案 0 :(得分:0)
看起来你可能发布了错误类型的对象。
你发帖期待看到一个FrameInventory
对象,其中包含FrameId
和其他一些东西。看起来你正在处理包含对象的params
{ frameId: frameId, newFrameInventory: newFrameInventory }
完全按照您的变量名称,我希望
$http.post("../api/v1/FrameInventory/post", params)
应该阅读
$http.post("../api/v1/FrameInventory/post", newFrameInventory)
只要newFrameInventory
具有您为FrameInventory
定义的结构。