c# - 从 Jquery 中的 JSON 调用返回 List<string> 的长度未定义

标签 c# javascript jquery asp.net

我正在从 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/

相关文章:

javascript - 如何使用引导 slider 显示处理程序内的值?

javascript - 根据日期属性对 javascript 对象进行排序

jquery - 如何使用jquery更改datepicker的日期格式?

jquery - 将鼠标悬停在 div 上会中断定位 jquery css

c# - 流式传输到包中,打包到 WordDocument 中,然后再返回

c# - ASP.NET Core 禁用响应缓冲

c# - IIS Express 使用 CLI 信任自签名 SSL 证书

c# - 如何在 app.config 中注册命名空间

javascript - Node JS : io is not defined error on frontend

javascript - jquery数据不解析值html5数据自定义属性