我有一个Web服务,当前返回一个字符串,我希望它返回一个字符串数组。 我的js代码看起来像这样:
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");
}
现在我返回一个字符串。我想返回string []。
如何修改我的js代码以使用此数组?
编辑:以下是@pukipuki提出的更改后的c#代码(仅限相关部分)
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 :(得分:1)
您应该以以下格式返回数据:
[ "array", "elements", "here" ]
然后你就可以通过结果索引。
答案 1 :(得分:0)
谢谢大家的帮助,你把我推向了正确的方向。
解决方案是添加[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
然后我按原样返回字符串数组,框架将其转换为JSON。 回到js代码,我现在可以使用result [0],result [1]等访问字段。