2017-03-07 27 views
0

我已經搜索並看到了許多解決方案,但我仍然沒有取得任何進展。我在控制檯中沒有得到任何錯誤,並且從ajax請求中得不到任何回報。從ASP.NET中的操作方法檢索Json對象

下面是操作方法的代碼:

 [HttpGet] 
     public ActionResult GetEmployees() 
     { 
      AWEmployeeModel aw = new AWEmployeeModel(); 
      aw.ID = 0; 
      aw.Name = "Selena"; 
      aw.Position = "Cashier"; 
      aw.Department = "Finance"; 

      return Json(aw,JsonRequestBehavior.AllowGet); 
     } 

這裏是我的控制器中我的Ajax調用:

EmpApp.controller("AWEmpControl", function ($scope) { 

loadEmployees(); 

function loadEmployees() { 
    $.ajax({ 
     url: "/AWEmployee/Index/GetEmployees", 
     method: "GET", 
     success:function (response) { 
      $scope.employees = response["Name"]; 
     } 
}); 
} 

}); 

我也有希望的頁面上的NG指示:

<div class="container" ng-app="AWEmpApp" ng-controller="AWEmpControl"> 
{{employees}} 
</div> 

我測試過,看看這些腳本是否可以正常工作,方法是分配$ scope.employees =「Hello ...」;並沒有問題,所以我知道它與腳本加載無關....可能是什麼問題?我已經確定將請求描述爲GET並返回一個JSON對象。我錯過了什麼嗎?

在此先感謝。

編輯

我檢查了Firefox的控制檯和回來解析錯誤:沒有XML的位置找到.......

,我發現奇怪,因爲服務器返回一個JSON對象,所以我取代了AJAX方法有以下:

function loadEmployees() { 
    $http.get('/AWEmployee/Index/GetEmployees') 
     .then(function(response) { 
       $scope.employees =response; 
      }); 

}; 

現在的反應是調用它的頁面(索引)的HTML數據,而不是JSON對象!我假定在this post中建議的通信之間發生了一些事情。

回答

1

當你使用JQuery來從服務器,而不是$http服務數據,而且是異步執行success功能,AngularJS不會反映在發生任何改變,迫使它,只是包裝分配到$apply

function loadEmployees() { 
    $.ajax({ 
     url: "/AWEmployee/Index/GetEmployees", 
     method: "GET", 
     success:function (response) { 
      $scope.$apply(function(){ 
       $scope.employees = response["Name"]; 
      }); 
     } 
    }); 
} 
+0

我曾嘗試用$ scope.apply包裝,因爲你提到,但仍然沒有解決它。我添加了錯誤回調選項,提醒我是否被調用,並且確實如此。所以我決定在問題的編輯中提到。 – Luv2Learn