传递一个Dictionary从控制器到视图,并从视图访问字典值以显示图表
本文关键字:视图 控制器 字典 显示图 访问 Double 一个 int Dictionary | 更新日期: 2023-09-27 18:13:43
我有一个控制器,它填充一个字典,其中键作为月日期为0、5、10、15、20、25、30,值作为每个周期覆盖的距离。例如:键5的字典元素在该月的第0天到第5天之间有覆盖的距离。
Dictionary<int, double> ChartDetails = getDetails.getFMS1DataSet(FMS1Resultset);
我需要知道如何将这个字典从控制器传递到视图。在视图中,我访问它们以显示天数与覆盖距离的图表。图表是SyncFusion用户控件
@(Html.EJ().Chart("container")
.PrimaryXAxis(pr => pr.Range(ra => ra.Min(2005).Max(2011).Interval(1)).Title(tl => tl.Text("Days")))
.PrimaryYAxis(pr => pr.Title(tl => tl.Text("Fuel Usage")).RangePadding(ChartRangePadding.None)
.LabelFormat("{value}%").Range(ra => ra.Min(25).Max(50).Interval(5)))
.CommonSeriesOptions(cr => cr.Type(SeriesType.Line).EnableAnimation(true)
.Marker(mr => mr.Shape(ChartShape.Circle).Size(sz => sz.Height(10).Width(10)).Visible(true)).Border(st => st.Width(2)))
.Series(sr =>
{
sr.Points(pt =>
{
pt.X("0").Y(0).Add();
pt.X("5").Y().Add();
pt.X("10").Y().Add();
pt.X("15").Y().Add();
pt.X("20").Y().Add();
pt.X("25").Y().Add();
pt.X("30").Y().Add();
}).Name("Fuel").Tooltip(sr1 => sr1.Visible(true).Template("Tooltip")).Add();
})
.CanResize(true)
这里for pt.X("5").Y().Add();我想把Y参数添加为Dictionary元素
不可能直接将字典值从视图传递到控制器,因为字典不允许数据序列化。因此,我们创建了一个包含字典类型的视图模型类。字典值存储在控制器的ViewBag中,并传递给视图,以便为系列点分配值。图表中的X值应该是字符串类型。因此我们将整型值转换为字符串。Y值用作double。我附上了样品链接供您参考。
http://www.syncfusion.com/downloads/support/directtrac/general/ze/WebApplication11359635681