You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC返回字符串列表后,jQuery遍历异常问题求助

问题分析与解决方案

我来帮你排查下问题,你遇到的「超长字符串」其实是因为Ajax请求没有正确解析返回的JSON数据,再加上几个小的代码错误,一起来修正:

1. 修正Ajax的dataType参数

你控制器返回的是Json(lstCmt),但Ajax里设置了dataType: "html"——这会让jQuery把返回的JSON数据当成纯文本/html处理,所以你看到的是未经解析的原始JSON字符串。把它改成dataType: "json",或者直接去掉这个参数(jQuery会自动根据响应头判断数据类型)。

2. 修正DOM选择器的拼写错误

你的视图里评论容器的id是cments,但JS里误写成了$('#comments')(多了一个字母o),这样根本找不到要插入内容的元素,修正成$('#cments')即可。

3. 修正遍历的取值方式

因为你返回的是纯字符串列表,$.each遍历的时候每个name就是列表里的字符串本身,不需要.Value,直接用name就能拿到内容。


修正后的完整视图JS代码

$(document).ready(function() {
    $("#ldBtn").on('click', function(evt) {
        $("#cments").empty();
        $.ajax({
            type: "POST",
            dataType: "json", // 修正为JSON类型
            url: '@Url.Action("GetComments")',
            data: {},
            success: function(lists) {
                // 修正选择器和取值逻辑
                $.each(lists, function(i, name) {
                    $('#cments').append('<p>' + name + '</p>');
                });
            }
        });
    });
});

如果后续你的lstCmt改成了复杂对象列表(比如包含Value属性的实体类),再把name改回name.Value就可以了。

内容的提问来源于stack exchange,提问作者Fast Chip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:18:11