我在这个错误上看到了很多关于JSON问题的帖子。我只是有一个调用web方法的经典Web表单。我有一堆单选按钮和一个表格中的2个下拉菜单。一旦我选中其中一个单选按钮和两个下拉菜单,我必须点击Build template
按钮填充表单(基本上是带有to,cc,subject字段等的电子邮件表单)
当我选择第一个单选按钮然后选择下拉菜单时,我会得到所需的结果。但是当我选择任何其他返回数据的单选按钮时,我会收到此循环引用错误。最后一个单选按钮不返回数据,因此不会抛出序列化错误。
以下是调用页面方法的javascript
function HandleIT() {
var ServiceID = document.getElementById("<%=ddServiceList.ClientID%>").value;
var Status;
// #code to set the drop downs to 1,2,3,4,5 on 'checked'# removed
PageMethods.FindAllRecipient(ServiceID, Status, onSucess, onError);
function onSucess(result) {
document.getElementById("<%=txtTo.ClientID%>").value = result[0];
document.getElementById("<%=txtCC.ClientID%>").value = result[1];
}
function onError(result) {
alert('Something wrong.');
}
}
以下是服务器方法中的代码:
[WebMethod]
public static object[] FindAllRecipient(string serviceID, string currentStatus)
{
RemoteObj1 = new ServiceEmailer();
Object[] results = RemoteObj1.FindAllRecipients(
Convert.ToInt16(serviceID),
Convert.ToInt16(currentStatus));
return results;
}
代码在服务器方法中正常工作。那里没有问题。正如错误所显示的那样,问题在于序列化并返回结果。