Json 如何使用Highcharts在ASP.NET MVC 3中优雅地绘制图表?
到目前为止,我已经使用highcharts和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(它可能有一个简单的解决方案)。但第二个问题确实很重要:图表完全与我的领域相关联。如果
- 图表代码直接在视图中编写,通过Json加载数据
- 负责绘制图表的Html助手
那么,伙计们,你认为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);
}