0

JSONの問題について説明するこのエラーに関する非常に多くの投稿を見てきました。Web メソッドを呼び出す従来の Web フォームを使用しています。フォームにたくさんのラジオ ボタンと 2 つのドロップダウンがあります。ラジオ ボタンの 1 つとドロップダウンの 2 つをチェックしたら、Build templateボタンをクリックしてフォームに入力する必要があります (基本的には、to、cc、件名フィールドなどを含む電子メール フォームです)。

最初のラジオ ボタンを選択してからドロップダウンを選択すると、必要な結果が得られます。しかし、データを返す他のラジオ ボタンを選択すると、この循環参照エラーが発生します。最後のラジオ ボタンはデータを返さないため、シリアル化エラーは発生しません。

ページメソッドを呼び出す 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;
}

コードはサーバー メソッドで正常に動作します。したがって、問題はありません。エラーが明らかに言うように、問題は結果をシリアル化して返すときにあります。

4

0 に答える 0