AngularJS + ASP.NET MVC调用控制器动作

时间:2016-08-31 13:04:02

标签: javascript angularjs json ajax asp.net-mvc

在使用AngularJS之前,我使用此代码来获取函数的JSON结果

$.ajax({
        url: '@Url.Action("getGamedata", "Home")',
        type: 'GET',
        dataType: 'json',
        cache: false,
        async: false,
        success: function (gameInfo) {
            //alert(gameInfo.Name); //Working OK
            for(var i=0;i<6;i++)
                createTable(gameInfo[i]);
        }
    });

JSON结果包含6个带有name,genre,imageUrl等的项目。现在我正在使用AngularJS,我有构建动态网格的功能

function buildGridModel(tileTmpl) {
          var it, results = [];

          for (var j = 0; j < 6; j++) {

              it = angular.extend({}, tileTmpl);
              it.icon = it.icon + (j + 1);
              it.title = it.title + (j + 1);
              it.span = { row: 1, col: 1 };

              switch (j + 1) {
                  case 1:
                      it.background = "red";
                      break;

                  case 2: it.background = "green"; break;
                  case 3: it.background = "darkBlue"; break;
                  case 4:
                      it.background = "blue";
                      break;

                  case 5:
                      it.background = "yellow";
                      break;

                  case 6: it.background = "pink"; break;
              }

              results.push(it);
          }

          return results;
      }

我想将每个项目标题推送到我的网格图块标题。

  1. 第1个tile标题=第1个JSON项目标题
  2. 第二个tile标题=第二个JSON项目标题

1 个答案:

答案 0 :(得分:0)

我的解决方案: 将ajax放入函数

function buildGridModel(tileTmpl) {
          var it, results = [];
          $.ajax({
              url: '/home/getGamedata',
              type: 'GET',
              dataType: 'json',
              cache: false,
              async: false,
              success: function (gameInfo) {

                  for (var j = 0; j < 6; j++) {

                      it = angular.extend({}, tileTmpl);
                      it.icon = it.icon + (j + 1);
                      it.title = gameInfo[j]["Name"];
                      it.span = { row: 1, col: 1 };

                      switch (j + 1) {
                          case 1:
                              it.background = "red";
                              break;

                          case 2: it.background = "green"; break;
                          case 3: it.background = "darkBlue"; break;
                          case 4:
                              it.background = "blue";
                              break;

                          case 5:
                              it.background = "yellow";
                              break;

                          case 6: it.background = "pink"; break;
                          case 7: it.background = "darkBlue"; break;
                          case 8: it.background = "purple"; break;
                          case 9: it.background = "deepBlue"; break;
                          case 10: it.background = "lightPurple"; break;
                          case 11: it.background = "yellow"; break;
                      }

                      results.push(it);
                  }
              }
          });

          return results;
      }