如何使用ajax将客户端列表发送到webmethod

时间:2016-03-02 12:46:22

标签: asp.net ajax typescript asp.net-ajax webmethod

我有一个在客户端使用typescript创建的类列表,现在我想将它发送到webmethod。 我的打字稿代码如下:

  class MakeReportData {
    LocalName: string;
    FldSi: number;
    ViewSi:number;
    TypeName:string ;
    CheckBoxshow :boolean   ;
    CheckBoxFilter:boolean;
}

我的Ajax代码如下:

  var temp: MakeReportData[] = [];
        for (var i = 0; i < $scope.myData.ReportDetail.length; i++) {
            var rep: MakeReportData=new MakeReportData();
            rep.LocalName = $scope.myData.ReportDetail[i].LocalName;
            rep.FldSi = $scope.myData.ReportDetail[i].FldSi;
            rep.ViewSi = $scope.myData.ReportDetail[i].ViewSi;
            rep.TypeName = $scope.myData.ReportDetail[i].TypeName;
            rep.CheckBoxshow = $scope.myData.ReportDetail[i].CheckBoxshow;
            rep.CheckBoxFilter = $scope.myData.ReportDetail[i].CheckBoxFilter;
            temp.push(rep);
        }
        var tedata = JSON.stringify({ itm: temp });
        alert(tedata);
        $.ajax({
            type: "POST",
            url: "MakeReport.aspx/GetList",
            contentType: "application/json; charset=utf-8",
            data: tedata , 
            dataType: "json",
            success: function (data) {
                alert(data.d);
            },
            error: function (data, status, jqXHR) {
                alert(status);
                alert(jqXHR);
            }
        });

我的网络方法如下:

 [WebMethod]
    public static string GetList(MakeReportData[] itm)
    {
        return "";
    }

我在C#中的课程是这样的:

 public class MakeReportData
{
    public string LocalName { get; set; }
    public int FldSi { get; set; }
    public int ViewSi { get; set; }
    public string TypeName { get; set; }
    public bool CheckBoxshow     { get; set; }
    public bool CheckBoxFilter { get; set; }

}

我想将MakeReportData列表发送到服务器webmethod。 我的问题是webmethod没有调用。

1 个答案:

答案 0 :(得分:0)

我自己制作,只需将webmethod的输入列为如下列表:

 public static string GetList(List<MakeReportData> itm)
    {
        return "";
    }