2013-02-27 24 views
1

我使用這個代碼讓我的數據,並將其推到劍道電網劍道電網DataSourceRequest的ArgumentException試圖理清

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

是的,因爲你的網格告訴'DataSourceResult'說' 「我會按類別進行排序」'。但是在你的DataSource(_db.Item.Local)中,它沒有任何名爲「Category」的字段。 (你的x =>新的{Category = x.CategoryItem.Title,}只需在'Sorting'完成後選擇'Category')。所以,你可以嘗試這樣的:_db.Item.Local.Select(x => new {Category = x.CategoryItem.Title,})。ToDataSourceResult(request)。 – hungdoan 2013-02-27 15:12:58

+0

啊當然!這解決了它,如果你在答案中重新發布它,我會將它標記爲一個 – Perry 2013-02-27 15:18:38

回答

5

是的,因爲你的網格告訴DataSourceResult "I'll sort by Category "

但在您的DataSource (_db.Item.Local)中,它沒有任何名爲'Category'的字段。 (您的x =>新的{Category = x.CategoryItem.Title,}只是在'Sorting'完成後選擇Category)。

所以,你可以嘗試這樣的:

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