2015-12-17 49 views
0

我努力让自己在页面加载一个Ajax请求itself.I我采用了棱角分明的js $ http服务,以摆脱它存在于我的User.aspx.cs页面的Web方法的JSON数据。Web方法获取执行

我的Web方法如下:

[WebMethod] 
    [ScriptMethod(ResponseFormat=ResponseFormat.Json)] 
    public static List<Users> GetUsers() 
    { 
     DBUtil objUtils = new DBUtil(); //This is my class for db connection 

     List<Users> list = new List<Users>(); 
     string strQuery = "select * from TM_Users"; 
     DataTable dt = objUtils.GetDataTable(strQuery); 
     for (int i = 0; i < dt.Rows.Count; i++) 
     { 
      list.Add(new Users {FullName=dt.Rows[i]["FullName"].ToString(), 
      UserName=dt.Rows[i]["UserName"].ToString(), 
      Password=dt.Rows[i]["Password"].ToString(), 
      phNum=dt.Rows[i]["MobileNo"].ToString(), 
      EmailId=dt.Rows[i]["EmailAddress"].ToString(), 
      Usertype=dt.Rows[i]["UserType"].ToString(), 
      CenterId=dt.Rows[i]["HealthCenterID"].ToString() 
      }); 
     } 
      return list; 
    } 

没有与网络没有问题method.When我尝试调用Web方法与$ HTTP的帮助是控制器伊娜单独的JS文件中写说Control.js。我的功能在这里是,我正在使用ng网格,所以要将该网格与数据库中的数据绑定。 如下面的代码:

var app = angular.module("myApp", ["ngGrid"]); 

app.controller('myCtrl', function ($scope, $http, $location) { 
    //var myData = $http.get("User.aspx/GetUsers"); 
    $scope.location = $location; 
    var url1 = "User.aspx/GetUsers"; 
    var myData; 
    $http.get(url1).success(function (data,status,headers) { 
     myData = data; 
    }).error(function (err) { 
     console.log(err); 
    }) 
    $scope.gridOptions = { 
     data: 'myData' 
    }; 

}); 

当调试后来我发现是的研制成功处理越来越executed.But aspx.cs页面上的Web方法没有得到响应execute.The我在成功处理程序收到数据是在.aspx页面

感谢你的帮助的整个HTML!

+0

中的WebMethod添加静态像'公共静态列表 GetUsers()' –

+0

还,如果得到请求,加上'[ScriptMethod(UseHttpGet = FALSE)]' –

+0

对不起他们did'nt解决我的问题。我得到一个错误,说明对象不支持属性或方法“配置”在我的控制器 –

回答

1

改变你的HTTP GET调用诸如this.I点点添加的内容类型,一个空的数据对象和响应类型为JSON。

var app = angular.module("myApp", ["ngGrid"]); 

app.controller('myCtrl', function ($scope, $http, $location) { 
    var request = 
    {   
    method: "GET", 
    url: "User.aspx/GetUsers", 
    data: {}, 
    headers: { "Content-Type": "application/json" }, 
    responseType: 'json' 
    } 

    $http(request).then(function (data,status,headers) { 
     myData = data; 
    }).error(function (err) { 
     console.log(err); 
    }) 
    $scope.gridOptions = { 
     data: 'myData' 
    }; 

}); 

}); 
+0

谢谢你这个作品。我会很高兴你可以告诉我什么是我做错了 –

+0

顺便说一句,当我在网络方法 –

+0

中使UseHttpGet = true时,你实际上需要明确地告诉有关您所期望的数据和响应的内容类型的请求。 –

0

WEBMETHOD应该是一个static方法。

+0

感谢您与静态..Still提醒..Edited同样的错误出现 –

+0

数据在成功处理程序具有 –

+0

aspx页面调试HTML和检查是否的WebMethod被叫或不。 –