2017-02-24 59 views
0

我一直在嘗試使用jquery將數據數組傳遞給c#web方法。我有一個有可選行的表格。我的功能必須通過所選數據的ID。但我無法將PageMethods傳遞給對象數組。
這裏是我的jQuery功能;如何將映射數組傳遞給PageMethods?

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

當我與螢火蟲調試它,veriable數據是這樣的:對象[ 「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); 而且我認爲它可能是關於映射數據導致某種循環行爲。

+0

你需要發佈'DB_UserControl' –

+0

我不這麼認爲,因爲沒有它的功能,它只是爲了測試。並且調試在那裏不起作用。錯誤引發jquery函數。 –

+0

因此,這些信息在問題中會很好......如果錯誤出現在DeleteQuestions中,爲什麼要發佈c#代碼? –

回答

0

問題通過更改語法來解決。我用

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

而不是給定的行。我不知道是什麼導致了錯誤,但這段代碼工作正常,我在c#中獲取數據。謝謝大家