从Web服务返回json数据

时间:2016-09-23 06:30:20

标签: c# asp.net json

    [WebMethod]
    public void contacters()
    {
        SqlConnection con = new SqlConnection(ConnectionString);
        List<object> obj = new List<object>();
        SqlCommand cmd = new SqlCommand("select * from authors", con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        for(int i=0; i<ds.Tables[0].Rows.Count; i++)

        {
            obj.Add(ds.Tables[0].Rows[i][0]);
            obj.Add(ds.Tables[0].Rows[i][1]);
            obj.Add(ds.Tables[0].Rows[i][2]);
        }
        JavaScriptSerializer ser = new JavaScriptSerializer();
        var json = ser.Serialize(obj);
        Context.Response.Write("{"+'"'+"info"+'"'+";"+json+"}");
    }

这是我的网络服务

和我的JS文件

var app = angular.module('myApp', []);
app.controller('customersCtrl', function ($scope, $http) {
    $http.post("WebService2.asmx/contacters")
    .then(function (response) {
        $scope.names = response.data.info;
        console.log(response.data.info);
    });
});

我在ASPX上的代码testjson.aspx

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">


<div ng-app="myApp" ng-controller="customersCtrl"> 

<table>
  <tr ng-repeat="x in names">
    <td>{{ x.AuthorId }}</td>
    <td>{{ x.Fname }}</td>
      <td>{{ x.Lname }}</td>
  </tr>
</table>

</div>
    <script type="text/javascript" src="testjavascript.js"></script>

</asp:Content>
当我调试webservice时,

webservice正在显示数据,

但问题是当我运行页面时testjson.aspx数据未显示

  

任何人都可以帮助我吗

网络服务运行良好,我认为可能有一个

  我的JS文件中的

问题

2 个答案:

答案 0 :(得分:3)

试试这个:

pat = re.compile(r'^test.*')

答案 1 :(得分:1)

您的响应是序列化的,因此您需要在脚本中解析,尝试此

JSON.parse(data);

此外,您还可以使用静态方法将Web服务作为字符串类型返回,如下面的代码。

[WebMethod]
public static string contacters()
{
    SqlConnection con = new SqlConnection(ConnectionString);
    List<object> obj = new List<object>();
    SqlCommand cmd = new SqlCommand("select * from authors", con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    for(int i=0; i<ds.Tables[0].Rows.Count; i++)

    {
        obj.Add(ds.Tables[0].Rows[i][0]);
        obj.Add(ds.Tables[0].Rows[i][1]);
        obj.Add(ds.Tables[0].Rows[i][2]);
    }enter code here
    JavaScriptSerializer ser = new JavaScriptSerializer();
    var json = ser.Serialize(obj);
    return json;
}