Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未从Asp.net WebMethod显示AngularJSON Json数据_C#_Asp.net_Angularjs - Fatal编程技术网

C# 未从Asp.net WebMethod显示AngularJSON Json数据

C# 未从Asp.net WebMethod显示AngularJSON Json数据,c#,asp.net,angularjs,C#,Asp.net,Angularjs,尝试通过一个工作示例学习Angularjs 原始示例在单击按钮时显示了一个简单的字符串。 我试图修改以显示从WebC方法返回的数据表 我的WebMethod看起来没问题——我可以进入它并返回一个JSON字符串 比如: 任何帮助都将不胜感激 谢谢 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test1.aspx.cs" Inherits="SampleAngularjs.Test1" %> <!DOCTYP

尝试通过一个工作示例学习Angularjs 原始示例在单击按钮时显示了一个简单的字符串。 我试图修改以显示从WebC方法返回的数据表

我的WebMethod看起来没问题——我可以进入它并返回一个JSON字符串 比如:

任何帮助都将不胜感激

谢谢

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test1.aspx.cs" Inherits="SampleAngularjs.Test1" %>

<!DOCTYPE html>
<html lang="en">

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
</head>

<body ng-app="codeapp">

  <div ng-controller="CodeController" >
    <button ng-click="myData.doClick(item, $event)">Send AJAX Request</button>
    <br/>


    <table>
    <tr>
        <th>Code</th>
        <th>Desc</th>

    </tr>
    <tr ng-repeat="code in myData.codes">
        <td>{{code.Code}}</td>
        <td>{{code.Desc}}</td>

    </tr>
</table>

  </div>

   <script>
           angular.module("codeapp", [])
           .controller("CodeController", function ($scope, $http) {

               $scope.myData = {};

               $scope.myData.codes = [];

               $scope.myData.doClick = function (item, event) {

                   $http.post('Test1.aspx/GetAllCodes', { data: {} })
                     .success(function (data, status, headers, config) {
                         //$scope.myData.fromServer = data.d;
                         $scope.myData.codes = data;
                     })
                     .error(function (data, status, headers, config) {
                         $scope.status = status;
                     });



               }


           }).config(function ($httpProvider) {

               $httpProvider.defaults.headers.post = {};

               $httpProvider.defaults.headers.post["Content-Type"] = "application/json; charset=utf-8";

           });
  </script>


</body>

</html>





[WebMethod]
        public static string GetAllCodes()
        {

            DataTable dt = new DataTable();
            using (SqlConnection con = new SqlConnection(@"Data Source=SQL2012;Initial Catalog=XXX;Persist Security Info=True;Password=xxxx;User ID=xxxx"))
            {
                using (SqlCommand cmd = new SqlCommand( "SELECT Code=TheCode, [Desc]=TheDescription FROM Codes ", con))
                {
                    con.Open();
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(dt);
                    System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
                    Dictionary<string, object> row;
                    foreach (DataRow dr in dt.Rows)
                    {
                        row = new Dictionary<string, object>();
                        foreach (DataColumn col in dt.Columns)
                        {
                            row.Add(col.ColumnName, dr[col]);
                        }
                        rows.Add(row);
                    }
                    serializer.MaxJsonLength = 50000000;
                    string sJson = serializer.Serialize(rows);
                    return (sJson);
                }
我做了更多的测试 如果我手动创建一个类似于从db返回的Json列表的列表,我可以手动显示 生成的列表,但不是从服务器获取的Json生成的列表

这是截图
您可能遇到了一些CORS问题。您是否检查了浏览器控制台是否有任何错误

如果CORS是您的问题,您只需要通过在响应的标题中添加访问控制允许来源:*来向服务器添加CORS支持。 以下是有关如何实施的更多详细信息:

您好,谢谢,但我没有收到任何错误-我在进一步挖掘后修改了我的原始帖子-我可以在文本字段中显示服务器上的JSON数据,但不能在表中显示。如果我建立一个类似于服务器发送给我的列表,我可以在文本字段和表格中显示它。我感到困惑的是,数据的格式看起来是一样的
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test1.aspx.cs" Inherits="SampleAngularjs.Test1" %>

<!DOCTYPE html>
<html lang="en">

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
</head>

<body ng-app="codeapp">

  <div ng-controller="CodeController" >
    <button ng-click="myData.doClick(item, $event)">Send AJAX Request</button>
    <br/>


    <table>
    <tr>
        <th>Code</th>
        <th>Desc</th>

    </tr>
    <tr ng-repeat="code in myData.codes">
        <td>{{code.Code}}</td>
        <td>{{code.Desc}}</td>

    </tr>
</table>

  </div>

   <script>
           angular.module("codeapp", [])
           .controller("CodeController", function ($scope, $http) {

               $scope.myData = {};

               $scope.myData.codes = [];

               $scope.myData.doClick = function (item, event) {

                   $http.post('Test1.aspx/GetAllCodes', { data: {} })
                     .success(function (data, status, headers, config) {
                         //$scope.myData.fromServer = data.d;
                         $scope.myData.codes = data;
                     })
                     .error(function (data, status, headers, config) {
                         $scope.status = status;
                     });



               }


           }).config(function ($httpProvider) {

               $httpProvider.defaults.headers.post = {};

               $httpProvider.defaults.headers.post["Content-Type"] = "application/json; charset=utf-8";

           });
  </script>


</body>

</html>





[WebMethod]
        public static string GetAllCodes()
        {

            DataTable dt = new DataTable();
            using (SqlConnection con = new SqlConnection(@"Data Source=SQL2012;Initial Catalog=XXX;Persist Security Info=True;Password=xxxx;User ID=xxxx"))
            {
                using (SqlCommand cmd = new SqlCommand( "SELECT Code=TheCode, [Desc]=TheDescription FROM Codes ", con))
                {
                    con.Open();
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(dt);
                    System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
                    Dictionary<string, object> row;
                    foreach (DataRow dr in dt.Rows)
                    {
                        row = new Dictionary<string, object>();
                        foreach (DataColumn col in dt.Columns)
                        {
                            row.Add(col.ColumnName, dr[col]);
                        }
                        rows.Add(row);
                    }
                    serializer.MaxJsonLength = 50000000;
                    string sJson = serializer.Serialize(rows);
                    return (sJson);
                }