2

我正在使用此代码获取我的数据并将其推送到 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;
}

在 Grid 的视图中不使用任何模型,让 Grid 解决所有问题。这一切都有效,我也可以浏览页面。但是,当我添加排序方法时,它会抛出这个异常,例如:

Invalid property or field - 'Category' for type: Item

并且每个后续请求都会失败,因为它在 DataSourceRequest 中具有排序,直到我重新加载页面以清除请求。在我需要添加到此代码中的配置方面,我是否遗漏了一些东西?

4

1 回答 1

8

是的,因为您的 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)
于 2013-02-27T15:28:21.303 回答