我想用telerik网格构建一个模板,该模板由其他页面作为局部视图调用。 像这样的模板代码:
@model IEnumerable<object>
@using System.Collections;
@using System.Collections.Generic;
@using System.Reflection;
@{
ViewBag.Title = "UserView2";
}
<div>
@{Html.Telerik().Grid(Model)
.Name("UserConfiguration")
.DataKeys(keys => keys.Add(o => o.GetType().GetProperty("ConfigurationItemId").GetValue(o)))
.Columns(
columns =>
{
Type t = Model.GetType().GetGenericArguments().FirstOrDefault();
foreach (var prop in t.GetProperties())
{
columns.Bound(prop.PropertyType, prop.Name);
}
columns.Command(commands => commands.Edit()).Width(100);
}
)
.DataBinding(
dataBinding => dataBinding.Server()
.Update("UpdateUser", "Configuration")
)
.Pageable(paging => paging.PageSize(20))
.Sortable()
.Scrollable(o => o.Height(500))
.Filterable()
.Resizable(resizing => resizing.Columns(true))
.Render();
}
其他视图页面调用模板视图,如下所示: @ Html.Partial(“UserView2”,Model.UserList)
当我运行它时,页面成功打开并成功显示所有数据。所以我认为通过反映获取列名称和列数据可以很好地工作。但是当我点击“编辑”按钮时,它会抛出异常:
模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。
任何人都可以帮我解决这个问题吗?