0

IEnumerablge<MyModel>Telerik Chart をInside Partial Viewにバインドしようとしています

私のモデル

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()抜けました。

また、パラメーターはラムダ式で選択さseries.Line("CurrentMonth")れた , またはフィールドのフィールド名と一致する必要があります。myObject

于 2012-09-06T15:50:14.607 に答える