我正在尝试将 Telerik MVC 与动态 ExpandoObjects 的集合一起使用。
控制器是:
[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 Control 动态对象?