2016-01-08 78 views
0

在我的控制器中我已经建立了GetUsersByJson操作:

public ActionResult GetUsersByJson() 
    { 
     DataLayer dal = new DataLayer(); 
     return Json(dal.Users.ToList<User>(), JsonRequestBehavior.AllowGet); 
    } 

dal.Users.ToList<User>()检索用户从我的数据库,这种方法效果很好,并检索JSON是有效的。

然后在脚本中我所做的:

$scope.load = function() { 
       $http({ method: "GET", url: "GetUsersByJson" }). 
       success(function (data, status, headers, config) { 
        $scope.users = data; 
       }); 
      }; 
$scope.load(); 

,但它并没有进入成功的功能。

+2

不应该URL是 “/ GetUsersByJson”?除此之外,你的成功参数与方法返回的类型不匹配(我可能是错误的,但这将保持原样是纯jQuery) –

+0

我在其他页面做了同样的事情,如ViewProducts,它的工作原理。 顺便说一下,我已经把断点放在GetUsersByJson中,并且它已经达到了它,并且json有效。 – Erez

+1

然后添加一个错误函数,它很可能会与某种信息达成 –

回答

1

尝试使用。然后,而不是.success See this.

+0

仍然不起作用 – Erez

+0

解释为什么是学习的重要组成部分,并将帮助提问者在将来返回类似问题。这也有助于发布替代品的位置,以便将来引用此问题的用户获得更好的可读性。帮助初始用户只是任何答案的第一个目标。 – user314321

+0

尝试在.then中添加错误处理程序以及第二个回调。看看它是否给出了一些错误。 – tk17aug

0

,而不是

success(function (data, status, headers, config) { 
       $scope.users = data; 
      }); 

尝试

.then(function (data) { 
       $scope.users = data; 
      }); 
+0

还不行 – Erez

1

你在你的$http.get有错URL调用它应该是作为默认路由的已经在RouteConfig.cs中。

此外,您需要使用.then而不是.success/.error方法,因为它们是$http callbacks are deprecated

代码

$scope.load = function() { 
    $http({ method: "GET", url: "/MyController/GetUsersByJson" }) 
    .then(function (response) { 
     $scope.users = response.data; 
    }, function(error){ 
     console.log(error); //this will print error in console. 
    }); 
}; 
$scope.load(); 
+0

也试过了,结果一样。 而在其他视图中,我做了与我在问题中所做的相同的事情,例如: $ http({method:“GET”,url:“GetProductsByJsonForView”})。 成功(功能(数据,状态,标题,配置){scope.Products = data; $ scope.lock = false; }); 它工作。 – Erez

+0

你是什么MVC控制器名称?你有没有检查开发者控制台(按F12)有没有错误? –

+0

SignUpController。 我在代码中放置了调试器,并遵循它,但除了断点以外,我不知道如何使用它..第一次我是网络编程 – Erez