ダイナミクス ExpandoObjects のコレクションで Telerik MVC を使用しようとしています。
コントローラーは次のとおりです。
[GridAction]
public ActionResult TestDiario()
{
var result = new List<dynamic>();
dynamic diarioModel = new ExpandoObject();
var dictionary = (IDictionary<string, object>)diarioModel;
dictionary.Add("ID", 1);
dictionary.Add("AlunoID", 12781);
dictionary.Add("DAY05CLASS1", true);
dictionary.Add("DAY05CLASS2", true);
dictionary.Add("DAY07CLASS1", true);
dictionary.Add("DAY08CLASS1", true);
result.Add(diarioModel);
return View(result);
}
ビューは次のとおりです。
@using Telerik.Web.Mvc.UI
@model IEnumerable<dynamic>
@{
ViewBag.Title = "TestDiario";
}
@(Html.Telerik().Grid(Model).Name("Grid")
.DataKeys(dataKeys => dataKeys.Add("ID"))
.Columns(columns =>
{
columns.Bound("MatAnoID").Visible(true);
columns.Bound("AlunoID");
columns.Bound("NroClasse");
columns.Bound("Aluno");
var dictionary = (IDictionary<string, object>)Model;
foreach (var property in (IDictionary<String, Object>)dictionary)
{
if (property.Key.ToString().Remove(3) == "DAY")
{
columns.Bound(property.Key);
}
}
})
.Pageable()
.Sortable()
.Groupable()
.Filterable()
)
ループ foreach は、DAY 文字列で始まるダイナミクス フィールドを取得します。
プロジェクトを実行すると、次のエラーが表示されます。
{"型付きオブジェクト 'System.Collections.Generic.List 1[System.Object]' to type 'System.Collections.Generic.IDictionary
2[System.String,System.Object]' を変換することはできません。"}
ループ スルー フィールドを持つ Telerik MVC コントロールで動的オブジェクトを使用する方法はありますか?