我正在使用此代码获取数据并将其推送到Kendo Grid
public ActionResult Read([DataSourceRequest] DataSourceRequest request)
{
return Json(GetData(request), JsonRequestBehavior.AllowGet);
}
private DataSourceResult GetData(DataSourceRequest request)
{
var Items = _db.Item.Local.ToDataSourceResult(request, x => new
{
ID = x.ID,
Title = x.Title,
LastEdited = x.User.LoginName,
Category = x.CategoryItem.Title,
DateEdited = x.DateEdited
});
return Items;
}
在网格的视图中不使用模型,让网格计算出所有内容。一切正常,我也可以浏览页面。但是,当我添加一个排序方法时,它会抛出这个异常,例如:
Invalid property or field - 'Category' for type: Item
并且每个后续请求都会失败,因为它在DataSourceRequest中具有排序,直到我重新加载页面以清除请求。我是否在配置方面遗漏了一些我需要添加到此代码的内容?
答案 0 :(得分:6)
是的,因为你的Grid告诉DataSourceResult "I'll sort by Category "
。
但是在DataSource (_db.Item.Local)
中,它没有任何名为'Category'的字段。
(你的x => new {Category = x.CategoryItem.Title,}只需在'排序'完成后选择类别)。
所以,你可以尝试类似的东西:
_db.Item.Local.Select(x=> new {
Category = x.CategoryItem.Title
}).ToDataSourceResult(request)