首页 新闻 搜索 专区 学院

Ajax如何调用c#后台传过来的数组

0
[已解决问题] 解决于 2017-07-21 11:30
success: function (msg) {
//调用msg msg是数组
}

 

情况是这样的,我用Ajax做了个判断,后台返回的结果是数组,请问我在Ajax里面如何调用这个数组,不会求指教

Nuller的主页 Nuller | 初学一级 | 园豆:115
提问于:2015-06-23 14:41
< >
分享
最佳答案
1

调用来干嘛?数组就是当数组用呗。

奖励园豆:5
幻天芒 | 高人七级 |园豆:36612 | 2015-06-23 15:09

是这样的 我从后台返回的值是字符串数组,也就是对应的msg是数组 但是我不知道如何调用,msg[0]这种不幸,网上查了eval也不行,请问我如何调用?

Nuller | 园豆:115 (初学一级) | 2015-06-23 15:18

@Coderwhl: 你应该是返回的字符串。你可以使用var msgArr = $.parseJSON(msg);,然后用msgArr[0]

幻天芒 | 园豆:36612 (高人七级) | 2015-06-23 15:40

@幻天芒: 经过实际测试不行,提示 “无效字符”

Nuller | 园豆:115 (初学一级) | 2015-06-23 15:48

@Coderwhl: 建议你贴完整ajax代码,而且把msg贴出来,包括数据类型。

幻天芒 | 园豆:36612 (高人七级) | 2015-06-23 17:29

@幻天芒: 

                var strMsg= new Array();
                var mrURL = encodeURI('@Url.Action("Vality", "Mat")?id=@Model.MatPreID');
                $.ajax({
                    type: "post",
                    url: mrURL,
                    async: false,
                    success: function (msg) {
                        if (msg != "") {
                            alert(msg);
                            strMsg = msg;
                            var msgArr = $.parseJSON(msg);
                            alert(msgArr[0]);
                        }
                    }
                });

后台:

        public string[] ValityMaterial(int id)
        {
             //code
        }    


后台返回的数组绝对没问题,但是运行会爆 ”无效字符“的错

Nuller | 园豆:115 (初学一级) | 2015-06-24 10:01

@Coderwhl: 要返回jsonString才可以哇。。  

public string ValityMaterial(int id)
{
    string[] results = xxx();
    return Json(results); //将对象转换为Json String。方法虚构的哈。
}

报错,是因为你的格式不满足json要求,导致转换失败、

幻天芒 | 园豆:36612 (高人七级) | 2015-06-24 10:51
其他回答(1)
0

你可以认为msg就是一个object[].

中文代码 | 园豆:951 (小虾三级) | 2015-06-23 15:14

是这样的 我从后台返回的值是字符串数组,也就是对应的msg是数组 但是我不知道如何调用,msg[0]这种不幸,网上查了eval也不行,请问我如何调用?

支持(0) 反对(0) Nuller | 园豆:115 (初学一级) | 2015-06-23 15:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册