我正在从 jquery 调用 Web 服务并尝试返回一个列表(我也尝试过 string[])。当我得到结果时,我可以看到它包含一个包含我需要的值的数组,但我无法在 Javascript 中迭代它们,因为没有长度值。
我的 C# Web 服务如下:
[WebMethod]
public string[] GetMultiChoiceOptions(int keyId)
{
string connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["OBConnectionString"].ConnectionString;
SitesUtil db = new SitesUtil(connectionString);
List<MultiChoiceOption> keys = db.GetMultiChoiceOptions(keyId, 1); //TO DO CHANGE THIS TO REAL USERID
return keys.Select(a => a.OptionValue).ToArray();
}
我的 Jquery/javscript 调用如下:
function GetKeys(keyid) {
var pageUrl = '<%=ResolveUrl("~/WebService/UpdateDatabase.asmx")%>'
$.ajax({
type: "POST",
url: pageUrl + "/GetMultiChoiceOptions",
data: '{keyId:' + keyid + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: GetKeysSuccessCall,
error: OnErrorCall
});
}
function GetKeysSuccessCall(response) {
/* TO DO */
var i = 0;
for (i =0; i < response.length; i++) {
$("#popupList").append('<li>' + response[i] + '</li>');
}
}
我不确定如何处理 JavaScript 中没有长度的数组?
最佳答案
我认为你应该首先使用JSONSerializer将正确的json结构发送到客户端。
你应该只返回一个JSON格式的字符串,然后它就可以工作了!
关于c# - 从 Jquery 中的 JSON 调用返回 List<string> 的长度未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12049679/