如何将映射数组传递给 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# 中获取数据。谢谢大家
我一直在尝试使用 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# 中获取数据。谢谢大家