谷歌图表的区域设置语言不起作用

时间:2017-10-13 13:55:38

标签: javascript asp.net asp.net-core

在我的页面中,我按照in the docs所述加载图表。这是asp.net中的一个视图,它呈现输出。视图检查是否填充了名为Avstemning的类,然后将该类中的字符串作为数据放入图表中。但是,如果我使用挪威的字母,如ø,æ,å。即使我指定要使用的语言选项,图表数据也无法读取它。这里发生了什么?

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

@if (Model.Avstemning != null)
{

 <script type="text/javascript">
  google.charts
  .load('current', { 'packages': ['corechart'], 'language':'no' });
  google.charts.setOnLoadCallback(drawChart);

  function drawChart() {

    var data = google.visualization.arrayToDataTable([
        ['Avstemning', '@Model.Avstemning.Tittel'],
        ['@Model.Avstemning.Option1', @Model.Avstemning.One],
        ['@Model.Avstemning.Option2', @Model.Avstemning.Two],
        ['@Model.Avstemning.Option3', @Model.Avstemning.Three]

    ]);

    var options = {
        title: '@Model.Avstemning.Tittel'};
    var chart = new 
    google.visualization.PieChart(document.getElementById('piechart'));

    chart.draw(data, options);
  }
 </script>
}

如果我更改数据变量以使用挪威字母的硬编码选项,它可以工作。但那并不完全理想。关于如何解决这个问题的任何想法?从控制器中注入javascript?

1 个答案:

答案 0 :(得分:0)

我使用Html.Raw()解决了编码问题。如果这些稍后存储在db中,则不推荐使用,但是可以按照我的意图显示数据:

 var data = google.visualization.arrayToDataTable([
        ['Avstemning', '@Html.Raw(Model.Avstemning.Tittel)'],
        ['@Html.Raw(Model.Avstemning.Option1)', @Model.Avstemning.One],
        ['@Html.Raw(Model.Avstemning.Option2)', @Model.Avstemning.Two],
        ['@Html.Raw(Model.Avstemning.Option3)', @Model.Avstemning.Three]

    ]);

    var options = {
        title: '@Html.Raw(Model.Avstemning.Tittel)',

    };