Jquery 数据表不能 post 数据 Ajax (asp.Net)

Jquery Data Tables Can't post data with Ajax (asp.Net)

我一直在尝试 post 数据到 jquery 数据表,但我做不到。我在服务器端有一个 Web 方法,其中 returns 数据作为对象数组。我需要使用 ajax post 获取数据。但我不能。所以我需要一些帮助。

这是我的 c# web 方法:

[WebMethod]
    public static object[] Questions()
    {
        table = new DataTable();
        List<object> questionList = new List<object>();
        table = RunSelectCommand("SELECT QUESTION_ID,QUESTION_TEXT,QUESTION_GROUP FROM QUESTIONS WHERE QUESTION_ACTIVE='Y'");
        for(int i=0 ; i<table.Rows.Count ; i++)
        {
            questionList.Add(new
            {
                q_id = table.Rows[i]["QUESTION_ID"].ToString(),
                q_text = table.Rows[i]["QUESTION_TEXT"].ToString(),
                q_group = table.Rows[i]["QUESTION_GROUP"].ToString()
            });
        }

        return questionList.ToArray();
    }

和jquery:

$(document).ready(function () {
        $('#questTable').DataTable({
            processing: true,
            serverSide:true,
            ajax: {
                url: 'Question.aspx/Questions',
                type:'POST'
            },
            columns: [
                { data: 'q_id' },
                { data: 'q_text' },
                { data: 'q_group' }
            ]
        });
    });

但是 我用断点调试它,我注意到 web 方法不起作用。 这是我的错误获取:DataTables 警告:table id=questTable - 无效 JSON 响应。有关此错误的详细信息,请参阅 http://datatables.net/tn/1

提前致谢。

问题已解决。这是关于我的网络方法 returns 对象数组和数据表不接受它。这就是为什么我收到 Invalid JSON response. 错误。所以我改变了我的js结构。我像往常一样 post 数据,然后我使用数据表 data 属性 for post。有效:

function GetData()
    {
        $.ajax({
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json',
            url: 'Question.aspx/Questions',
            data: '{}',
            success: function (result) {
                $('#questTable').DataTable({
                    data:result.d,
                    columns: [
                        { data: 'q_id' },
                        { data: 'q_text' },
                        { data: 'q_group' }
                    ]
                });}
     }