2011-07-11 13 views
2

現在のところ、文字列を返すWebサービスがあり、文字列配列を返す必要があります。 私のjsのコードは次のようになります。asp.net Webサービスからjqueryに返す文字列配列

function getMenu(menuID) { 
    $("#open").css('display', 'block'); 
    $("#close").css('display', 'none'); 
    $('#flash_container').flash({ 
     swf: 'mainGallery.swf', 
     width: "100%", 
     height: 330, 
     wmode: "transparent", 
     quality: "high", 
     flashvars: { XMLFile: 'xml/' + menuID + '.xml' } 
    }); 

    $("div#panel").slideUp("slow", function() { 
     var language; 
     if (getParameterByName('language') == 'en') 
      language = 1; 
     else 
      language = 0; 

     GetMenu.CreateMenu(menuID, language, OnGotMenu, OnFail, "XmlDocument"); 

    }); 

} 

function OnGotMenu(result) { 
    var lblOutput = document.getElementById("lblOutput"); 
    lblOutput.innerHTML = result; 

    $(".MenuList a:last").removeAttr('border-left'); 

    $("div#panel").slideDown("slow"); 
    $("#open").css('display', 'none'); 
    $("#close").css('display', 'block'); 
    fleXenv.fleXcrollMain("panel_content"); 
} 

今、私は文字列を返します。私は文字列[]を返す。

この配列を使用するにはどのようにjsコードを変更する必要がありますか?

編集:ここでは、C#のコードは@pukipuki(関連部分のみ)

table.RenderControl(tw); 
     string retVal = "[\"" + menuDIV + sb.ToString() + "\", \"" + currTitle + "\"]"; 
     return retVal.ToString(); 

は、たぶん私はここに何か間違ったことをやっていることにより、提案された変更後です。

編集2: C#コードの改良版:

table.RenderControl(tw); 
    retArray[0] = menuDIV + sb.ToString(); 
    retArray[1] = currTitle; 
    string retVal = jsSer.Serialize(retArray); 
    return retVal; 

しかし、私はまだ私は同じようにアクセスできる配列を得ることはありません:

var that = result[0]; 
var oranother = result[1]; 

など

+0

コードでWebサービスを呼び出すときの部分はどこですか? –

+0

私はasp.net ajax経由で呼び出します。 GetMenu.CreateMenu() –

+0

あなたのASP.NETコードに適切な.ToJson()ライブラリが見つかりました。現在行っていることは非常にエラーが多いためです。 – keymone

答えて

1

次のような形式でデータを返す必要があります。

[ "array", "elements", "here" ] 

を入力すると、結果をインデックスに登録できます。

+0

試してみてください。それは動作しません。私は私のポストにc#コードを追加します。多分問題はそこにあります。 –

0

ご協力いただきありがとうございました。あなたは正しい方向に私を押し込んだ。 解決策は、追加することでした[ScriptMethod(ResponseFormat=ResponseFormat.Json)]

私はちょうどそのままの文字列配列を返し、フレームワークはそれをJSONに変換します。 jsコードに戻り、result [0]、result [1]などのフィールドにアクセスできるようになりました。

関連する問題