0

我正在尝试将 Telerik Chart 绑定到IEnumerablge<MyModel>内部局部视图

我的模特

public class MyModel
{
    private string identifier;
    private DateTime date;
    private int visits;
}

局部视图

@model IEnumerable<MyModel> 
@{
Html.Telerik().Chart(Model)
    .Name("Visits")
    .Legend(legend => legend.Visible(true).Position(ChartLegendPosition.Bottom))
    .Series(series => {
        series.Line("CurrentMonth").Name("Current Month")
              .Markers(markers => markers.Type(ChartMarkerShape.Triangle));
        series.Line("PrevMonth").Name("Previous Month")
              .Markers(markers => markers.Type(ChartMarkerShape.Square));
    })
    .CategoryAxis(axis => axis.Categories(s => s.date))
    .ValueAxis(axis=>axis.Numeric().Labels(labels=> labels.Format("{0:#,##0}")))
    .Tooltip(tooltip => tooltip.Visible(true).Format("${0:#,##0}"))
    .HtmlAttributes(new { style = "width: 600px; height: 400px;" });
}

出现以下错误:

CS1660: Cannot convert lambda expression to type 'System.Collections.IEnumerable' because it is not a delegate type

在以下代码行:

.CategoryAxis(axis => axis.Categories(s => s.date))

谢谢!

4

1 回答 1

1

代码存在多个问题。在代码中更改位后,我终于发现以下工作正常:

@{    
Html.Telerik().Chart(Model)
    .Name("SampleChart")
    .Tooltip(tooltip => tooltip.Visible(true).Format("${0:#,##0}"))
    .Legend(legend => legend.Position(ChartLegendPosition.Bottom))
    .Series(series =>
    {
        series.Line(s => s.visits).Name("Visits");
        series.Line(s => s.hits).Name("Hits");
    })
    .CategoryAxis(axis => axis
        .Categories(s => s.date)
    )
    .Render();
}

所以Render()最后还是不见了。

此外,参数 inseries.Line("CurrentMonth")必须与myObject通过 lambda 表达式选择的或字段中的字段名称匹配。

于 2012-09-06T15:50:14.607 回答