AngularJS调用webmethod

时间:2013-08-05 08:19:15

标签: jquery asp.net-mvc angularjs

我正在学习AngularJS,并且我已经使用mvc应用程序进行了设置。 我正在尝试将之前在JQuery中编写的一小段代码转换为AngularJS,但无法弄清楚如何使其工作。问题是我不知道如何使用AngularJS在我的控制器中调用codebehind方法?

这就是它现在在JQuery中的工作方式:

//JQuery calling code behind
$(document).on("click", ".open-AppDescriptionDialog", function () {
    var title = "Title";
    var state = "active";

    //call method
    $.post('<%= Url.Action("StatusInfoString") %>', { header: title, status: state }, ParseResult);
});



//method in controller
[HttpPost]
public ActionResult StatusInfoString(string path, string status)
{
     ServiceClient serviceClient = new ServiceClient();
     var data = serviceClient.GetResults();

     return Content(data);
 }

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

在角度中,它们是实现此目的的不同方式,而角度具有相同的模块

以下是清单

http://docs.angularjs.org/api/ngResource。$资源

http://docs.angularjs.org/api/ng。$ HTTP

http://docs.angularjs.org/api/ng。$ httpBackend

你需要从上面注入这个模块,一般人们使用工厂mehthod为此编写服务就是这样的例子:

app.factory('myService', function($http) {
   return {
     getList:function(params){
          var promise= $http({url: 'ServerURL',method: "POST", params: params}).then(function(response,status){

            return response.data;
            });
          // Return the promise to the controller
          return promise; 
        }
   }
});

app.controller('MainCtrl', function($scope, myService) {
  myService.getList(function(data) {
     $scope.foo = data;
  });
});