簡體   English   中英

帶有數組的角發布對象

[英]Angular post object with arrays in it

我正在嘗試發布一個具有一些屬性和數組的對象。 屬性提交就很好了,但是對象中的數組沒有在MVC.NET控制器中序列化回去。 在此示例中,頁面已正確映射,但是數組對象(位置)在控制器中始終為null 有什么建議么?

//add some data
$scope.formData = {
 Page: 1,
 Locations: []
};
$scope.formData.Locations.push({
 LocationID: 1,
 LocationType: 1
});
$scope.formData.Locations.push({
 LocationID: 2,
 LocationType: 2
});

//post method
$http({
 method: 'POST',
 url: 'myurl',
 params: $scope.formData,
}).then(function successCallback(
 response) {
 //do something
}, function errorCallback(response) {
 //do something

});

服務器端模型

public class SearchAuctionData
{     
    public int Page { get; set; }
    public List<SmallLocation> Locations { get; set; }
}

public class SmallLocation
{
    public short LocationID { get; set; }
    public short LocationType { get; set; }
}

控制者

[HttpPost]
[AllowAnonymous]
public async Task<JsonResult> GetAuctions(SearchAuctionData data)
{
//do somethng
   return Json(result);
}

這個:

$http({
 method: 'POST',
 url: 'myurl',
 params: $scope.formData,

應該:

$http({
 method: 'POST',
 url: 'myurl',
 data: $scope.formData,

更好的是,使用服務(確保將其注入控制器):

app.factory("MyService", ["$http", function($http){
    return {
        postItem: function(url, item) {
            return $http({
                url: url,
                method: 'POST',
                data: item
            });
        }
    }
}]);

控制器內部

MyService.postItem('/path/to/c#/controller', $scope.formData).then(successCallback).catch(failureCallback);

“控制器中的null ”是什么意思?

在您的POST請求之后?

還是在POST調用之前打印$scope.formData.Locations ,這是null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM