C# Kendo Grid DataSourceRequest ArgumentException正在尝试排序

C# Kendo Grid DataSourceRequest ArgumentException正在尝试排序,c#,asp.net-mvc-4,kendo-ui,kendo-grid,C#,Asp.net Mvc 4,Kendo Ui,Kendo Grid,我使用这个代码来获取我的数据并将其推送到剑道网格 public ActionResult Read([DataSourceRequest] DataSourceRequest request) { return Json(GetData(request), JsonRequestBehavior.AllowGet); } private DataSourceResult GetData(DataSourceRequest request) { var Items = _db.I

我使用这个代码来获取我的数据并将其推送到剑道网格

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中具有排序。我是否缺少一些需要添加到此代码中的配置?

是的,因为您的网格告诉DataSourceResult“我将按类别排序”

但是在
数据源(_db.Item.Local)
中,它没有任何名为“Category”的字段

(您的x=>new{Category=x.CategoryItem.Title,}只需在完成“排序”后选择Category即可)

因此,您可以尝试以下方法:

_db.Item.Local.Select(x=> new {
    Category = x.CategoryItem.Title
    }).ToDataSourceResult(request)

是的,因为您的网格告诉
DataSourceResult
“我将按类别排序”。但是在您的数据源(_db.Item.Local)中,它没有任何名为
'Category'
的字段。(您的x=>new{Category=x.CategoryItem.Title,}只需在“排序”完成后选择
Category
)。所以,您可以尝试以下方法:_db.Item.Local.Select(x=>new{Category=x.CategoryItem.Title,}).ToDataSourceResult(request.ah当然!这就解决了问题,如果你在回复中重新发布,我会把它标记为一个