如何通过ajax调用从angularJS控制器到MVC5控制器获取JSON
我是安格拉斯的新手。我想从angular控制器到MVC5控制器进行ajax调用。我有三个参数的操作驻留在HomeController中,如 我的角度控制器在这里如何通过ajax调用从angularJS控制器到MVC5控制器获取JSON,ajax,json,angularjs,Ajax,Json,Angularjs,我是安格拉斯的新手。我想从angular控制器到MVC5控制器进行ajax调用。我有三个参数的操作驻留在HomeController中,如 我的角度控制器在这里 var myModule = angular.module("myApp", ['ngRoute']); myModule.controller('SimpleController', function ($scope, $http, SimpleFactory) { $scope.friends = [];
var myModule = angular.module("myApp", ['ngRoute']);
myModule.controller('SimpleController', function ($scope, $http, SimpleFactory) {
$scope.friends = [];
init();
function init() {
$scope.friends = SimpleFactory.getFriend();
}
$scope.addFriend = function ($http) {
$scope.friends.push(
{
name: $scope.newFriend.name,
phone: $scope.newFriend.phone,
age: $scope.newFriend.age
});
//$http("/Home/addFrnd");
$http.get({
type: "POST",
url: "~/Home/addFrnd",
data: {
name: $scope.newFriend.name,
phone: $scope.newFriend.phone,
age: $scope.newFriend.age
},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
},
error: function (msg) {
alert(msg.d);
}
});
};
});
我怎样才能解决这个问题?请帮助我其中一些可能取决于您的路线。无论哪种方式,您都需要在http调用中删除~before home。另一个问题是您使用的是$http.get,并且指定的类型是post。如果它实际上是一个post,只需使用$http.post{。另外,在mvc控制器中使用post属性指定此调用是一个post:
[HttpPost]
public ActionResult addFrnd(int name, string phone, int age)
{
//do something
return json();
}
你可以这样写你的文章:
$scope.addFriend = function(){
addFriend()
.success(function(returnVal){
//success
})
.err(function(error){
//error
});
};
function addFriend(){
var data = {
name: $scope.newFriend.name,
phone: $scope.newFriend.phone,
age: $scope.newFriend.age
};
return $http.post('/Home/addFrnd/', data);
}
也无需将$http传递到$scope.addFriend的scope函数中,您已经注入了它为什么要将$http服务传递到addFriend函数中?哇,太棒了。它工作得很好。感谢您修改代码并提供有价值的信息。没问题。如果我是您,我会阅读工厂和模块。他们可以为您的控制器提供数据访问层非常方便。如果您通过此调用在工厂中添加friend,则注入您的工厂,您可以以相同的方式使用它。然后在另一个控制器中注入它并执行相同的操作,而无需重写它。如果url发生更改,也会有所帮助。
$scope.addFriend = function(){
addFriend()
.success(function(returnVal){
//success
})
.err(function(error){
//error
});
};
function addFriend(){
var data = {
name: $scope.newFriend.name,
phone: $scope.newFriend.phone,
age: $scope.newFriend.age
};
return $http.post('/Home/addFrnd/', data);
}