如何通过从angularJS控制器到MVC5控制器的ajax调用获取JSON
我是AngularJS的新成员。我想从角度控制器到我的MVC5控制器进行ajax调用。我行动与三个参数驻留在的HomeController像如何通过从angularJS控制器到MVC5控制器的ajax调用获取JSON
public ActionResult addFrnd(int name, string phone, int age)
{
//do something
return json();
}
和我的角度控制器放在这里
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调用之前删除“〜”。另一个问题是您使用的是$ http.get,并且您指定的类型是帖子。如果它实际上是一个后只需使用$ http.post({此外,指定你的MVC控制器,这个调用是一个后通过邮寄属性:
[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范围功能,您已经注入其
哇伟大? 。它完美地工作。感谢您修改代码并提供有价值的信息在 – 2014-09-26 19:49:28
没问题。如果我是你,我会阅读工厂和模块。他们可以派上用场,为您的控制器提供数据访问层。如果你有这个电话在工厂添加朋友,注入你的工厂,你可以用同样的方式使用它。然后在另一个控制器中注入并执行相同的操作,而不必重写它。如果网址发生变化也有帮助。 – rleffler 2014-09-26 20:17:19
为什么你传递$ http服务的addFriend功能 – 2014-09-26 19:30:38