如何从.Net Web服务返回DataTable?

时间:2009-05-22 16:45:10

标签: .net web-services json datatable

我能够从我为.Net 2.0设置的Web服务返回HashTable,但该服务无法在JSON中重新调用DataTable。我不断收到以下错误:'序列化对象时检测到循环引用'。有什么提示吗?

 [WebMethod(EnableSession = true) ]
public DataTable getSavedAddresses()
{
    DataTable dt = new DataTable();
    if (Session["ClientID"] != null)
    {
        int clientId = Convert.ToInt32(Session["ClientID"]);
        dt = Address.GetClientShippingAddresses(clientId);
    }
    return dt;

}

2 个答案:

答案 0 :(得分:1)

循环引用可能是由于DataTable具有Columns属性,而每个DataColumn对象都具有Table属性。

this blog post by Rick Strahl中的信息可能对您有所帮助。

答案 1 :(得分:0)

快速浏览这个旧问题... 我这样做:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js" 
        integrity="sha384-NaWTHo/8YCBYJ59830LTz/P4aQZK1sS0SneOgAvhsIl3zBu8r9RevNg5lHCHAuQ/"
        crossorigin="anonymous"></script>
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<script>
    function download() {
        let doc = new jsPDF('p', 'pt', 'a4');
        doc.html(document.getElementById('content'), {
            callback: function () {
                // doc.save('test.pdf');
                window.open(doc.output('bloburl')); // use this to debug
            }
        });
    }
</script>