2012-03-12 15 views
0

私はmvcアクションから2次元配列をビューに返しています。オブジェクトに対して$ .each()関数を使って反復処理したいと考えています。何らかの理由で私はこれを動作させることができません。2次元配列をjsonオブジェクトとして返し、それを反復する

自分の行動:

[HttpPost] 
    public JsonResult ShowTiles(TileModel tile) 
    { 

     MapModel map = HomeController.mapModel; 
     map.MapTilesArray[tile.OldX, tile.OldY].Value = 4; 

     var player = map.MapTilesArray[tile.OldX, tile.OldY].Player; 
     map.MapTilesArray[tile.X, tile.Y].Player = player; 
     player.Position = new Point(tile.X,tile.Y); 

     map.MapTilesArray[tile.X, tile.Y].Value = 2; 

     return Json(map.MapTilesArray); 
    } 

私のモデル:

public MapModel() 
    { 

     MapTilesArray = new TileModel[10,10]; 

     for (int i = 0; i < 10; i++) 
     { 
      for (int j = 0; j < 10; j++) 
      { 
       MapTilesArray[i, j] = new TileModel(); 
       MapTilesArray[i, j].Value = 1; 

      } 
     } 

     userNameList = new List<string>(); 
    } 

私の見解:

$.ajax({ 
      beforeSend: function() { ShowAjaxLoader(); }, 
      url: "/Game/ShowTiles", 
      type: "POST", 
      contentType: "application/json;charset=utf-8", 
      dataType: "json", 
      data: JSON.stringify(tile), 
      success: function (data) { 
       HideAjaxLoader(), 
       $.each(data, function (index, item) { 
        if (item.Value === 0) { 
         $("#" + item.Y + item.X).css("background-color", "brown"); 
        } 
        else if (item.Value === 1) { 
         $("#" + item.Y + item.X).css("background-color", "black"); 
        } 
        else if (item.Value === 2) { 
         $("#" + item.Y + item.X).css("background-color", "green"); 
        } 
        else if (item.Value === 3) { 
         $("#" + item.Y + item.X).css("background-color", "blue"); 

        } 
        else if (item.Value === 4) { 
         $("#" + item.Y + item.X).css("background-color", "purple"); 

        } 

       }), MovePlayer(newPosition.left + 15, newPosition.top + 15) 
      }, 
      error: function() { showErrorMsg(); } 
     }); 
    }); 

答えて

0

配列

あなたの中に、この

コントローラエコーのようにしてみてください

$data = array(
    array(
     'title' => 'My title' , 
     'name' => 'My Name' , 
     'date' => 'My date' 
    ), 
    array(
     'title' => 'Another title' , 
     'name' => 'Another Name' , 
     'date' => 'Another date' 
    ) 
); 

echo json_encode($data); 

、あなたは

を理解し、自分のsenarioに適用しようとするあなたのビューでそれを取得し、この

var data = $.parseJSON(data); 


for(x in data) 
{ 
    alert(data[x]['title]); 
    alert(data[x]['name]); 
    alert(data[x]['date]); 
} 

のように繰り返すことができます

関連する問題