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

MVC控制器数据如何传递至JavaScript?新手开发者求助

解决ASP.NET Core控制器数据无法传递到JavaScript的问题

嘿,作为编程新手遇到这种数据传递的问题太正常了,我帮你一步步排查和修复:

首先,修复控制器里的代码逻辑问题

你的Index方法里的代码块写法有明显错误,会导致逻辑混乱:

public IActionResult Index()
{
    { Getstatus(); return View(); } // 嵌套大括号是错误写法,且Getstatus不需要在这里调用
}

改成正确的逻辑:Index方法只需要返回视图即可,Getstatus是独立的API接口,由前端Ajax单独调用:

public IActionResult Index()
{
    return View();
}

另外,请确认query.TotalVotes确实是List<VoteStatistics>类型,这样返回的JSON才是你需要的数组结构。

修复jQuery Ajax的语法与逻辑漏洞

你尝试的Ajax代码里有几个容易踩的坑:

  1. 配置对象里直接写debugger;会导致JS语法解析失败
  2. 没有指定dataType: 'json',浏览器可能无法正确识别返回的数据格式
  3. 缺少错误处理逻辑,无法知道请求是否失败

修复后的Ajax代码:

<script>
$(function(){
    $.ajax({
        type: "GET",
        url: '@Url.Action("Getstatus","Test")',
        dataType: 'json', // 明确告诉jQuery预期返回JSON格式
        success: function (votings) {
            console.log('成功获取到的数据:', votings); // 先在控制台打印数据,确认结构正确
            var labelsArray = [];
            var dataArray = [];
            $.each(votings, function (index, data) {
                labelsArray.push(data.IDParty);
                dataArray.push(data.Votes);
            });
            renderChart(labelsArray, dataArray);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.error('请求出错了:', textStatus, errorThrown); // 查看错误信息,快速定位问题
        }
    });
});
</script>

确保必要的脚本已正确加载

你的视图代码里没有显示引用jQuery和Chart.js,这是关键前提!必须在渲染图表的脚本之前加载这两个库:

<!-- 可以放在视图的<head>标签内,或者页面底部 -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.8/dist/chart.umd.min.js"></script>

如果是本地项目的脚本文件,确保文件路径正确即可。

实用调试小技巧

  • 按下F12打开浏览器开发者工具,切换到Console标签,查看是否有JS报错信息
  • 切换到Network标签,查看Getstatus接口的请求状态码和返回的数据是否符合预期

按照这些步骤调整后,应该就能成功获取数据并渲染出柱状图了!

内容的提问来源于stack exchange,提问作者Ionaș Cristian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 13:42:27