以数据为参数的 MVC3 图表助手
我正在处理 mvc 框架的图表助手,我想知道是否有一种方法可以将动态数据添加到图表中。 所有教程(例如 http://www.asp. net/webmatrix/tutorials/7-displaying-data-in-a-chart)使用硬编码数据。
如果我想传递数据(例如股票列表)并在图表中显示数据该怎么办?
我将图表包含在内:
<img src="@Url.Action("GenerateChart", new {data = stocks})" alt="stocks" />
操作方法的可能代码:
public FileContentResult GenerateChartImage(IList<StockProgressionModel> data)
{
Chart chart = new Chart(800, 600);
foreach (var stock in data {
int[] xArray = Enumerable.Range(0, stock.Entries.Count).ToArray();
var yArray = stock.Entries.Select(e => e.Value).ToArray();
chart.AddSeries(ap.FieldOfActivityName, chartType: "FastLine",
xValue: xArray,
yValues: yArray);
chart.SetXAxis("Month", 0);
chart.SetYAxis("Value", 0);
}
return File(chart.GetBytes(), "image/png");
}
这意味着 url 的链接始终相同,并且我无法将数据作为参数传递。 有更好的方法吗?
I'm dealing with the chart helper of mvc framework and I wonder if there is a way to add dynamic data into the chart.
all the tutorials (e.g. http://www.asp.net/webmatrix/tutorials/7-displaying-data-in-a-chart) use hard coded data.
What if I want to pass the data, for example a list of stocks and display the data in the charts.
I'm including the chart with:
<img src="@Url.Action("GenerateChart", new {data = stocks})" alt="stocks" />
The possible code of the action methode:
public FileContentResult GenerateChartImage(IList<StockProgressionModel> data)
{
Chart chart = new Chart(800, 600);
foreach (var stock in data {
int[] xArray = Enumerable.Range(0, stock.Entries.Count).ToArray();
var yArray = stock.Entries.Select(e => e.Value).ToArray();
chart.AddSeries(ap.FieldOfActivityName, chartType: "FastLine",
xValue: xArray,
yValues: yArray);
chart.SetXAxis("Month", 0);
chart.SetYAxis("Value", 0);
}
return File(chart.GetBytes(), "image/png");
}
This means that the link of the url is always the same and I cannot pass the data as parameter.
Is there a better way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我找到了一个解决方案:
视图:
控制器:
如果有人有更好的解决方案,我会感兴趣。
I found a solution:
View:
Controller:
If someone had a better solution, i would be interested.
您可以查询控制器中的数据并将其传递给视图
然后您可以使用
.DataBindTable(ViewBag.data, xField: "product")
.Write()
You can query the data in your controller and pass it to view
And then you can use
.DataBindTable(ViewBag.data, xField: "product")
.Write()