我的目标是创建一个列高图,显示各种推销员的名称以及他们销售多少。我写了这个代码从我的SQL数据库返回的名称和每个业务员的销售总和:LINQ SQL方法不填充Highcharts
[HttpPost]
public JsonResult ChartVendedores()
{
//Retorna um JSON contendo o nome do vendedor e o valor por ele vendido, usando inner join pelo id do vendedor.
try
{
var resultado = (from ve in db.tblVendedor
join vn in db.tblVenda on ve.vendedor_id equals vn.vendedor_id
group vn by new
{
ve.vendedor_nome
}into g
select new {
vendedor_nome = g.Key.vendedor_nome,
venda_valor = g.Sum(x => x.venda_valor)
}).ToList();
var jsonResult = new
{
Nomes = resultado.Select(x => x.vendedor_nome),
Valores = resultado.Select(x => x.venda_valor)
};
return Json(resultado);
}catch(Exception)
{
return null;
}
}
这是被创建的图表,其中,该方法被调用,它是suposed填补图表与数据库的返回数据:
<script>
$(function() {
$.ajax({
url: '/Vendedores/ChartVendedores',
type: 'post',
async: false,
sucess: function (data) {
//Constrói o gráfico com os valores retornados pelo banco.
Highcharts.chart('container', {
chart: {
type: 'column'
},
title: {
text: 'Venda dos Colaboradores'
},
xAxis: {
categories: [
data.Nomes
],
crosshair: true
},
yAxis: {
min: 0,
title: {
text: 'Valor (R$)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Valores',
data: data.Valores
}]
});
}
})
})
我是什么我失踪?只要代码去,我不认为我在方法中写了任何错误的代码。我说错了吗?我操纵它错了吗?我试图删除我的Ajax代码,只留下图表本身,因为它位于highchart.com上并且它工作正常,所以问题不在我的容器div或图表代码中。
编辑:正如下面的评论,我看着我的控制台,我收到一条关于Highcharts需要的进口产品的警告。减退如下is this one.看到这个后,我试图删除AJAX,并只使用highchart code。有效!对于当图表尝试使用一些这方面的原因:
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
当图表代码包含内部sucess: function(data){}
注意它没有找到它:我在代码的beggining进口的一切,同时包含Ajax的脚本被写入最后。
尝试'return Json(resultado,JsonRequestBehavior.AllowGet);'。参考这篇文章:https://stackoverflow.com/questions/8464677/why-is-jsonrequestbehavior-needed –
没有改变,@KhanhTO – William
@William,你是否在前端获取数据。你可以确保在浏览器开发者控制台中返回json结果。浏览器控制台中是否有错误? –