我创建了一个小型MVC项目,我正在尝试通过我的JavaScript控制器检索数据
我的控制器如下所示: -
angular.module('MyApp', [])
.controller('PlayerCtrl', function ($scope, $http) {
$scope.title = "loading...";
$scope.players = [];
$scope.working = false;
$scope.myString = "ABC";
$scope.getPlayers = function (group) {
$scope.working = true;
$http.get("/api/player").success(function (data, status, headers, config) {
$scope.players = data.players;
}).error(function (data, status, headers, config) {
$scope.title = "Oops... something went wrong";
$scope.working = false;
});
};
});
我的html页面如下所示: -
@{
ViewBag.Title = "Play";
}
<div id="bodyContainer" ng-app="MyApp">
<section id="content">
<div ng-model="PlayerCtrl" ng-init="getPlayers()">
<p>{{myString}}</p>
<select id="group1">
<option ng-repeat="option in data.players" value="{{option.FirstName}}">{{option.LastName}}</option>
</select>
</div>
</section>
</div>
@section scripts {
@Scripts.Render("~/Scripts/angular.js")
@Scripts.Render("~/Scripts/app/player-controller.js")
}
我可以看到我的JavaScript被点击,因为我在Chrome开发者工具中有一个断点
然而,当javascript执行时,我在开发工具的控制台中收到以下错误
http://localhost:61176/4181b55e60dd4855bf01360ebafcfd61/browserLink无法加载资源:net :: ERR_CONNECTION_REFUSED
我不知道为什么。任何指针都非常赞赏
注意 - 如果我将/ api / player添加到我的URL进行测试,那么我的.NET代码会正常启动并执行。从javascript控制器正常运行时,我的.NET代码不会被调用
答案 0 :(得分:1)
您没有发布您的控制器代码,因此我不知道它是否相关但请确保您使用JsonRequestBehavior.AllowGet
设置了JSON操作。
例如:
public JsonResult GetAllCustomers()
{
var customers = new List<Customer>
{
new Customer { Id = 1, Name = "a"},
new Customer { Id = 2, Name = "b"},
new Customer { Id = 3, Name = "c"},
new Customer { Id = 4, Name = "d"}
};
return Json(customers, JsonRequestBehavior.AllowGet); // here
}
如果您js
代码位于与controller
不同的域中,则应该检查的另一件事是您启用了cors。
答案 1 :(得分:0)
我在我的div上错误地使用了ng-model而不是ng-controller。