Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何使用Highcharts在ASP.NET MVC 3中优雅地绘制图表?_Json_Asp.net Mvc 3_Html Helper_Highcharts - Fatal编程技术网

Json 如何使用Highcharts在ASP.NET MVC 3中优雅地绘制图表?

Json 如何使用Highcharts在ASP.NET MVC 3中优雅地绘制图表?,json,asp.net-mvc-3,html-helper,highcharts,Json,Asp.net Mvc 3,Html Helper,Highcharts,到目前为止,我已经使用highcharts和MVC 3两年了(我从未做过任何复杂的事情,只是加载数据并使其正常工作),我使用了两种不同的场景: 图表代码直接在视图中编写,通过Json加载数据 负责绘制图表的Html助手 Html助手方法在我看来是一个更优雅的选择。。。但是,为了向你们说明,这里是它的样子(只是其中的一部分): 正如你们所看到的,我必须使用Html.Raw帮助程序才能让它工作。。。这就是问题1(它可能有一个简单的解决方案)。但第二个问题确实很重要:图表完全与我的领域相关联。如果

到目前为止,我已经使用highcharts和MVC 3两年了(我从未做过任何复杂的事情,只是加载数据并使其正常工作),我使用了两种不同的场景:

  • 图表代码直接在视图中编写,通过Json加载数据
  • 负责绘制图表的Html助手
Html助手方法在我看来是一个更优雅的选择。。。但是,为了向你们说明,这里是它的样子(只是其中的一部分):

正如你们所看到的,我必须使用Html.Raw帮助程序才能让它工作。。。这就是问题1(它可能有一个简单的解决方案)。但第二个问题确实很重要:图表完全与我的领域相关联。如果我想绘制一个条形图,以月为单位显示过去3年的数据(每个月用一个条形图表示),那么使用这个助手是不可能的

而且它看起来也有点难看


那么,伙计们,你认为Json或Helper方法哪个更优雅?

关于
Html.Raw的使用和简单的解决方案:

将您的函数更改为

public static HtmlString DisplayChart(this HtmlHelper helper, ...)
{
    ...
    return new HtmlString(result);
}
然后,您可以在razor视图中使用
@Html.DisplayChart(…)


另外,请确保
options.DivName
options.Title
options.SubTitle
等都已正确转义-像每个人最喜欢的图表这样的标题将破坏输出。

在我忘记之前,很抱歉助手中的葡萄牙语以及任何其他错误键入。葡萄牙语在字符串中,指的是月份名称。谢谢。。。关于我已经想到的divName和Title,可能是通过截断或类似的方式。使用.NET4,您可以尝试
System.Web.HttpUtility.JavaScriptStringEncode
@Html.Raw(Html.DisplayChart((ChartOptions)Model.Options,(TimedChartSeries[])Model.Series))
public static HtmlString DisplayChart(this HtmlHelper helper, ...)
{
    ...
    return new HtmlString(result);
}