2014-10-27 42 views
1

我有一些問題發佈到我的控制器從Angular。如果我單獨發佈變量,一切都很好,但是當我將我的變量組合成一個對象來響應我的視圖模型時,它只識別ID而不是我的PlayerViewModel的列表。模型從AngularJS到ASP.NET MVC5

這裏是我的viewModels:

public class PlayerViewModel 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
} 

public class TeamViewModel 
{ 
    public int ID { get; set; } 
    public List<PlayerViewModel> Players; 
} 

這是我的MVC控制器:

[HttpPost] 
    public JsonResult IndexPost(int ID, List<PlayerViewModel> ListPlayers, TeamViewModel Team) 
    { 
     return Json(true, JsonRequestBehavior.AllowGet); 
    } 

這是我的角碼:

$scope.players = []; 
      $scope.playerA = { ID: 5, Name: "Player1" }; 
      $scope.playerB = { ID: 6, Name: "Player2" }; 
      $scope.playerC = { ID: 8, Name: "Player3" }; 
      $scope.players.push($scope.playerA); 
      $scope.players.push($scope.playerB); 
      $scope.players.push($scope.playerC); 

      $scope.ID = 7; 

      $scope.team = { ID: $scope.ID, Players: $scope.players }; 

      $scope.btnClick = function() { 
       $http({ 
        traditional: true, 
        url: "IndexPost", 
        method: "POST", 
        data: { 'ID': $scope.ID, 'ListPlayers': $scope.players, 'Team': $scope.team }, 
        dataType: FormData 
       }).success(function (data) { 
        $scope.finish = data; 
       }).error(function (data) { 
        $scope.status = status; 
       }); 
      } 

這是我在控制器響應:

(It's an image in dropbox)

正如你看到的,我TeamViewModel的ID是正確的,但PlayerViewModels的名單不會填寫有沒有人有一個想法是什麼我。做錯了嗎?

謝謝!

+0

我也有同樣的問題。你解決了這個問題? – 2016-11-12 07:43:29

+0

是的,首先嚐試從後端獲取一個空模型,然後操縱該模型,而不是創建一個新的JS變量。所以,從一個HTTP Get開始,操作這個模型,然後做一個HTTP Post。這對我工作.. – brammekuhh 2016-11-14 12:12:49

回答

0

JSON.stringify

var data = JSON.stringify({ 'ID': $scope.ID, 'ListPlayers': $scope.players, 'Team': $scope.team }); 

系列化你的數據在你的原代碼,可以設置一個JS對象轉換成要發送的數據。通過序列化,您可以將數據作爲服務器可以讀取的json發送。

+0

感謝您的答案,但這並沒有解決我的答案,當測試。我序列化數據,它看起來不錯,但它不會正確填寫在mij控制器..這是我現在的序列化字符串:「{」ID「:7,」ListPlayers「:[{」ID「:5,」名稱 「:」 PLAYER1 「},{」 ID 「:6中,」 名稱 「:」 Player2 「},{」 ID 「:8中,」 名稱 「:」 Player3 「}]}」。我只發送這個var與我的httpPost作爲數據,但它不會工作。任何想法? – brammekuhh 2014-10-27 15:26:56