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当然!这就解决了问题,如果你在回复中重新发布,我会把它标记为一个