我是AngularJS的新手。我想从我的角度控制器到我的MVC5控制器进行ajax调用。我的操作与三个参数位于 HomeController 中,如
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);
}
});
};
});
我该如何解决这个问题?请帮帮我
答案 0 :(得分:0)
其中一些可能取决于您的路由。无论哪种方式,您都需要在http呼叫中删除之前删除“〜”。另一个问题是你使用$ http.get,你指定的类型是一个帖子。如果它实际上是一个帖子,只需使用$ http.post({。另外,在你的mvc控制器中指定这个调用是一个帖子,使用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的范围函数,你已经注入了它