如何将映射数组传递给 PageMethods?

How to pass mapped array to PageMethods?

我一直在尝试使用 jquery 将数据数组传递给 c# web 方法。我有一个 table 有 selectable 行。我的函数必须传递所选数据的 ID。但是我无法使用 PageMethods 传递对象数组。
这是我的 jquery 函数;

function DeleteQuestions()
    {
        var table = $('#questTable').DataTable();
        var data = (table.rows('.selected').data()).map(function (d) { return d.q_id; });
        PageMethods.Delete(data);
    }

当我用 firebug 调试它时,真实数据看起来像:我想要的 Object["543","544","546"]。 这是我的 Web 方法:

[WebMethod]
    public static void Delete(List<string> questId)
    {
        DB_UserControl carrier = new DB_UserControl(); //break pointed here
    }//and looks it doesn't come here

它不起作用,错误是:无法在子属性中使用循环引用序列化对象。我已经搜索错误但我无法弄清楚.所以需要一些帮助。提前致谢。

注意:在脚本函数的最后一行抛出错误:PageMethods.Delete(data); 我认为这可能与映射数据有关导致某种循环行为。

问题已通过更改语法解决。我用

var data = $.map(table.rows('.selected').data(), function (d) {
            return d.q_id;
        });

而不是给定的行。我不知道是什么导致了错误,但这段代码工作正常,我在 c# 中获取数据。谢谢大家