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(); }
});
});