我能够从我为.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;
}
答案 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>