Ajax Pagemethod正在抛出“序列化“System.Reflection.RuntimeModule”类型的对象时检测到循环引用”

Ajax Pagemethod正在抛出“序列化“System.Reflection.RuntimeModule”类型的对象时检测到循环引用”,ajax,asmx,pagemethods,Ajax,Asmx,Pagemethods,我看过很多关于这个错误的帖子,解释了JSON问题。我只是有一个调用web方法的经典web表单。我有一堆单选按钮和两个下拉列表。一旦我选中其中一个单选按钮和两个下拉列表,我就必须单击Build template按钮,用收件人、抄送、主题字段等填充表单基本上是am电子邮件表单 当我选择第一个单选按钮,然后选择下拉菜单时,我会得到所需的结果。但是当我选择任何其他返回数据的单选按钮时,我得到了这个循环引用错误。最后一个单选按钮不返回数据,因此不会引发序列化错误 下面是调用page方法的javascrip

我看过很多关于这个错误的帖子,解释了JSON问题。我只是有一个调用web方法的经典web表单。我有一堆单选按钮和两个下拉列表。一旦我选中其中一个单选按钮和两个下拉列表,我就必须单击Build template按钮,用收件人、抄送、主题字段等填充表单基本上是am电子邮件表单

当我选择第一个单选按钮,然后选择下拉菜单时,我会得到所需的结果。但是当我选择任何其他返回数据的单选按钮时,我得到了这个循环引用错误。最后一个单选按钮不返回数据,因此不会引发序列化错误

下面是调用page方法的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.');
    }
}

代码在服务器方法中运行良好。所以没有问题。正如错误明确指出的,问题在于序列化和返回结果。

您真的觉得所有这些代码都是重现问题所必需的吗?谢谢您编辑我的帖子John。对不起,我的发言不简短。我想那会容易些。我已经删除了不必要的标签和设计。最简单的方法是发布重现问题所需的最小代码。好的。我认为这个页面本身是不必要的。我还尝试将其从对象数组更改为字符串数组。我仍然得到相同的循环引用。我不明白为什么除了第一个单选按钮外,所有其他单选按钮都会有循环引用。当我继续纠正错误时,第一台收音机buton仍然工作,并呼叫“onsuccess”,感谢您的帮助。我想不出这个问题。所以我做了一个变通,在服务器端将结果连接成一个带分隔符的字符串,并在客户端使用javascript将其拆分。
[WebMethod]
public static object[] FindAllRecipient(string serviceID, string currentStatus)
{
    RemoteObj1 = new ServiceEmailer();
    Object[] results = RemoteObj1.FindAllRecipients(
        Convert.ToInt16(serviceID),
        Convert.ToInt16(currentStatus));

    return results;
}