【发布时间】:2014-03-21 18:08:01
【问题描述】:
这是我的 javascript,下面是我的 C# 代码:
//javascript in view
var data = {
labels: [@Misc.printData(Model.chartLabels, true)],
datasets: [
{
fillColor: "rgba(151,187,205,0.5)",
strokeColor: "rgba(151,187,205,1)",
data: [@Misc.printData(Model.chartData, false)]
}
]
}
//C# helper
public static IHtmlString printData(IEnumerable<string> data, bool putQuotes)
{
string str = String.Empty;
if (!data.Any())
return new HtmlString(str);
if (putQuotes)
str = @"""" + data.Aggregate((result, next) => result + @""", """ + next) + @"""";
else
str = data.Aggregate((result, next) => result + ", " + next);
return new HtmlString(str);
}
我正在尝试使用控制器传递给我的 C# 模型中的信息来填充 javascript 中的数据结构。这显然是一个可怕的 hack。有没有更好的方法?
【问题讨论】:
-
你可以使用 ViewBag 设置它更像是会话变量,但如果你不使用 MVC,你可以交流
-
你考虑过将它作为 JSON 传递吗?
标签: c# javascript asp.net-mvc-3 razor