Это абсолютно возможно. Начнем с создания новой модели представления для представления данных диаграммы.
public class ChartSeriesData
{
public string[] XValues { set; get; }
public string[] YValues { set; get; }
public string Name { set; get; }
}
public class MyChartData
{
public List<ChartSeriesData> Series { set; get; }
public string Name { set; get; }
}
И в методе действий, создать объект, если MyChartData
класса, Уста различных значений свойств и отправить его на просмотр.
public ActionResult MyChart()
{
var vm= new MyChartData { Name = "MyChartTitle",Series = new List<ChartSeriesData>()};
vm.Series.Add(new ChartSeriesData
{
Name = "View",
XValues = new[] { "Monday", "Tuesday", "Wendesday", "Thursday", "Friday" },
YValues = new[] { "2", "6", "4", "5", "3" }}
);
vm.Series.Add(new ChartSeriesData
{
Name = "Downloads",
XValues = new[] { "Monday", "Tuesday", "Wendesday", "Thursday", "Friday" },
YValues = new[] { "1", "2", "6", "5", "3" }
});
return View(vm);
}
Теперь на ваш взгляд, который сильно типизированных к нашей MyChartData
вид модели, мы будем перебирать свойства серии и вызвать метод AddSeries
.
@model ReplaceWithYourNameSpaceHere.MyChartData
@{
var myChart = new Chart(width: 600, height: 400)
.AddTitle(Model.Name);
foreach (var item in Model.Series)
{
myChart.AddSeries(name: item.Name, xValue: item.XValues, yValues: item.YValues);
}
myChart.Write();
}
Если вы хотите включить диаграмму в другой точке зрения бритвы, вы можете использовать тег изображения и установите значение атрибута src
к методу MyChart действий.
<img src="@Url.Action("MyChart","Home")" alt="Some alt text" />
Предполагая MyChart
метод действия существует в HomeController
.